私はDjango 1.6.5およびpython 2.7で作業しています。アプリにインポート機能があり、エラーが発生します。
OSError: [Errno 18] Invalid cross-device link
コードのこの部分に問題があります:
os.rename(db_temp, settings.DATABASES['bookmat']['NAME'])
設定のコード:
'bookmat': {
'ENGINE': 'Django.db.backends.sqlite3',
'NAME': '/my_projects/book/db/bookmat.sqlite3',
},
os.rename
は、ソースと宛先が同じファイルシステム上にある場合にのみ機能します。代わりにshutil.move
を使用する必要があります。
名前の変更は、ソース名とターゲット名が同じファイルシステム上にある場合にのみ機能すると思います。おそらく異なるマウントがあります。そうしないと、そのエラーが発生します。コピーと削除で同じ効果を実装できます。
それが役に立てば幸い