Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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', }, 
like image 771
mark Avatar asked Feb 22 '17 13:02

mark


2 Answers

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

like image 174
butesa Avatar answered Sep 25 '22 12:09

butesa


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

like image 28
Tiago A. Avatar answered Sep 22 '22 12:09

Tiago A.