複数のモデルを含むサンプル Django アプリケーションを作成し、データを入力しました。
さて、モデルの 1 つに新しい列を追加する必要がありますか?
ここに私の懸念がありますか?
- モデルに列を追加した後に syncdb を実行するとどうなりますか? テーブルを変更して新しい列を追加するだけですか?
- それとも、すべての列を削除した後に新しいテーブルを作成しますか?
この問題に取り組むためのより良い方法はありますか?
複数のモデルを含むサンプル Django アプリケーションを作成し、データを入力しました。
さて、モデルの 1 つに新しい列を追加する必要がありますか?
ここに私の懸念がありますか?
この問題に取り組むためのより良い方法はありますか?
syncdb
データベース テーブルの変更には使用できません。ドキュメントは次のとおりです(参照:Syncdbは既存のテーブルを変更しません)
これを達成するためのクリーンな方法は、 django southなどのサードパーティ ツールを使用して、移行を処理することです (この場合はテーブルの変更スクリプトを処理します)。
これは南のステップバイステップのチュートリアルであり、ここは南の公式ドキュメントです
開発ではリセット機能を多用しています。開発データを吹き飛ばしてもかまわないので、私にとっては便利です。基本的に、そのアプリ専用の新しいデータベース テーブルを作成するため、データが削除されます。データを入力したままにしたい場合は役に立ちません。上記のように南の方が適しています。
python manage.py reset <app-name>