OSError: [Errno 18] ligação cruzada inválida
Estou a trabalhar com o django 1.6.5 e o python 2.7.
Tenho um recurso de importação no meu aplicativo e recebo um erro:
OSError: [Errno 18] Invalid cross-device link
tenho problemas com esta parte do Código:
os.rename(db_temp, settings.DATABASES['bookmat']['NAME'])
Código na configuração:
'bookmat': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/my_projects/book/db/bookmat.sqlite3',
},
16
2 answers
os.rename
só funciona se o código e o destino estiverem no mesmo sistema de ficheiros. Em vez disso, deve utilizar shutil.move
.
28
Author: butesa, 2017-05-14 18:51:33
Acho que mudar o nome só funciona quando os nomes de origem e de destino estão no mesmo sistema de ficheiros. Deves ter montes diferentes. Caso contrário, terá esse erro. Você pode implementar o mesmo efeito com uma cópia e uma delete.
Espero que ajude. 2
Author: Tiago Almeida, 2017-02-22 19:00:31