django, migrationsに泣く。(Django入門)
アブストラクト:
・djanto:'we are trying to add a non-nullble field...'→アプリのmigratnonsフォルダを初期化で回避できる。(rm -r migrations)meaning 'your project'/'your app'/migrations。
・migrationsの上書きの繰り返しは失敗する可能性有。
序論
modelをせっせと書いてmakemigrationsでmigrationsファイルを上書きし続けたところエラーに遭遇したので書きました。
本論
$ python manage.py makemigrations
You are trying to add a non-nullable field 'new_model' to member without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
ざっくり和訳:Django:「null許容型ではないフィールド’new_model’を追加しようとしているが不可能である。修正方法を選びなさい。
(1)一回性のデフォルトを今作る。
(2)やめる。んでデフォルトを加える。」
(...私「???('・ω・' ;)])
null許容型とは一般には引数に'nothing'を取れる変数のことを言うので、null許容の機能が正常に機能することはDB管理で重要です。しかし普通にmigrateしても上記のエラーが繰り返すばかりであったので、今回はエラー回避を目的にmigrationを初期化することを考えました。project/app/migrationをremoveしてもう一度migrateするとうまくいったので同じエラーで困っている人は試してみてほしいです。備忘録終わります。
結論
Django.migrationの上書きはエラーを出しうるので、困ったら落ち着いて初期化しよう。
この記事が気に入ったらサポートをしてみませんか?