私は最近モデルを更新し、BooleanFieldを追加しましたが、python manage.py syncdb
、モデルのデータベースに新しいフィールドを追加しません。どうすれば修正できますか?
Djangoは現在、これを自動的に行いません。オプションは次のとおりです。
python manage.py sql (appname)
を使用してデータベースのSQLを出力し、フィールドに追加された行を見つけて、alter table
SQLコマンドを使用して手動で追加します。 (これにより、現在のレコードのフィールドの値を選択することもできます。)トップアンサーで提案されているように、 South を使用してみましたが、 obscure migration errors でフラストレーションが1時間続いた後、代わりに Django Evolution を使用することにしました。
始めるのは南よりも簡単だと思います。また、最初に./manage.py evolve --hint --execute
ので、私はそれに満足しています。
Havent used Django=ですが、syncdbはdbテーブルでalterコマンドを実行することを覚えているようです。
編集:申し訳ありませんが変更を実行しません。
In Django 1.6
最初に実行しました-python manage.py sql <app name>
次に、実行する必要があります-python manage.py syncdb
ApacheとMySQLでDjangoを実行する場合は、makemigrationsで移行を行った後にApacheを再起動します。