OSError: [Errno 18] Invalid cross-device link

PythonDjangoDatabaseSettingsBackend

Python Problem Overview


I'm working with django 1.6.5 and python 2.7. I have import feature in my app and I get error:

OSError: [Errno 18] Invalid cross-device link

I have problem with this part of code:

os.rename(db_temp, settings.DATABASES['bookmat']['NAME'])

code in settings:

'bookmat': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': '/my_projects/book/db/bookmat.sqlite3',
},

Python Solutions


Solution 1 - Python

os.rename only works if source and destination are on the same file system. You should use shutil.move instead.

Solution 2 - Python

I think rename only works when the source and target names are on the same file system. You probably have different mounts. Otherwise you get that error. You can implement the same effect with a copy and a delete.

Hope it helps

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmarkView Question on Stackoverflow
Solution 1 - PythonbutesaView Answer on Stackoverflow
Solution 2 - PythonTiago A.View Answer on Stackoverflow