南の移行の失敗から回復することになっているのはどうですか?
-
25-10-2019 - |
質問
私は使用しています 南 (バージョン0.6、Ubuntu Lucid Lynxでパッケージ化されたもの)Jangoのデータベース移行を管理し、現在SQLiteをバックエンドとして使用しています。次のような列を追加するために移行を生成した状況に出会いました。
./manage.py startmigration myapp --auto added_new_column
...これは賢明に見える移行を生成しました。ただし、次のように移行を適用したとき
./manage.py migrate myapp
追加した列が非ヌルだったため、エラーが発生しましたが、デフォルト値を指定していませんでした。
ValueError: You cannot add a null=False column without a default value.
移行がこのように失敗し、戻ってそれを再生したい場合、何をするはずですか? (私が実際にしたこと、つまり、移行を削除して新しいものを生成するということは、さらにいくつかの問題を引き起こしました。)おそらく、これについてのドキュメントで明白な何かを見逃した可能性があります...
解決
この場合、移行が失敗し、DBに書き込まれなかったため、古いものを安全に削除して再び作成できます。また、新しいサウスバージョンを使用してみることもできます。ステップの作成時にNot Nullフィールドのデフォルトチェックを追加したと思います。
所属していません StackOverflow