2

私はSouth(バージョン0.6、Ubuntu Lucid Lynxにパッケージ化されているもの)を使用してDjangoでデータベースの移行を管理しており、現在はバックエンドとしてSQLiteを使用しています。次の列を追加するための移行を生成する状況に遭遇しました。

./manage.py startmigration myapp --auto added_new_column

...これは賢明に見える移行を生成しました。ただし、次の方法で移行を適用すると、次のようになります。

./manage.py migrate myapp

追加した列がNULL以外であるためにエラーが発生しましたが、デフォルト値を指定していませんでした。

ValueError: You cannot add a null=False column without a default value.

このように移行が失敗し、戻って再生成したい場合はどうすればよいですか?(私が実際に行ったこと、つまり移行を削除して新しい移行を生成することは、さらにいくつかの問題を引き起こしました。)おそらくこれに関するドキュメントで明らかな何かを見逃しました...

4

1 に答える 1

4

この場合、移行は失敗し、dbに書き込まれなかったため、古いものを安全に削除して再作成できます。また、新しい南バージョンを使用してみることができます。作成ステップでNOTNULLフィールドのデフォルトチェックが追加されたと思います。

于 2011-01-27T09:52:29.307 に答える