Oserror: [Errno 18] Invalid Cross-Device Link

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',
},
4

2 Answers

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

7

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Marcus Vance

Marcus Vance

Cybersecurity & Digital Privacy Researcher

Marcus Vance is a cybersecurity auditor and technology writer dedicated to educating the public about online safety, data privacy regulations, enterprise security, and emerging cyber threats.

Share this article
Twitter Facebook Pinterest