Southを使用してDjangoモデルの列のデフォルトを変更する

私はDjangoプロジェクトのためにPostgresql DBでSouthを使用しています。

今後のためにデフォルト値を変更したいモデルフィールドがあります。私は以前の記録が必要ではない。ちょうど新しい記録。

このためにマイグレーションを行う必要がありますか、モデルを変更するだけですか?

古いフィールドの詳細:

background_style = models.CharField(max_length=1, choices=BACKGROUND_STYLE, default=BackgroundStyleCode.CENTERED)

NEW FIELD DETAIL:

background_style = models.CharField(max_length=1, choices=BACKGROUND_STYLE, default=BackgroundStyleCode.STRETCHED)

(モデル名は「ページ」です)

3

1 答え

移行を実行する必要があります。モデルに変更を加えるときは、スキル・マイグレーションを作成して、「魔法の」編集なしで任意の時点に前後に移動できるようにする必要があります。

0
追加された
あなたは正しい。私は私の答えの間違った部分を削除しました。
追加された 著者 Jordan,
@ブレンデン:それはそれが残念です。さて、あなたがソース管理下にある限り、あなたは大丈夫ですが、実際にデータベースが変更されていなくてもSouthがあなたのためにそれを把握していないのは残念です。
追加された 著者 Jordan,
DjangoはDBレベルでデフォルト値を処理しません。
追加された 著者 Michael Mior,
@Jordan私が移行( "python manage.py schemamigration page --auto")を実行すると、 "何も変更されていないようです"
追加された 著者 Brenden,