2

複数のモデルを含むサンプル Django アプリケーションを作成し、データを入力しました。

さて、モデルの 1 つに新しい列を追加する必要がありますか?

ここに私の懸念がありますか?

  1. モデルに列を追加した後に syncdb を実行するとどうなりますか? テーブルを変更して新しい列を追加するだけですか?
  2. それとも、すべての列を削除した後に新しいテーブルを作成しますか?

この問題に取り組むためのより良い方法はありますか?

4

3 に答える 3

3

syncdbデータベース テーブルの変更には使用できません。ドキュメントは次のとおりです(参照:Syncdbは既存のテーブルを変更しません)

これを達成するためのクリーンな方法は、 django southなどのサードパーティ ツールを使用して、移行を処理することです (この場合はテーブルの変更スクリプトを処理します)。

これは南のステップバイステップのチュートリアルであり、ここは南の公式ドキュメントです

于 2013-08-07T16:43:04.337 に答える
0

開発ではリセット機能を多用しています。開発データを吹き飛ばしてもかまわないので、私にとっては便利です。基本的に、そのアプリ専用の新しいデータベース テーブルを作成するため、データが削除されます。データを入力したままにしたい場合は役に立ちません。上記のように南の方が適しています。

python manage.py reset <app-name>
于 2013-08-07T17:05:18.363 に答える