0

私はちょうどそれを自分でテストしました。私は Django モデルを持っていましたが、データベースにはモデルのインスタンスが既にありました。

次に、ダミーの整数フィールドをモデルに追加して実行しましたmanage.py syncdb。データベースをチェックしましたが、テーブルには何も起こりませんでした。追加された追加フィールドが表示されません。

これは予想される動作ですか?モデルを変更する適切な方法は何ですか?また、それによってデータベースに既に存在するデータがどのように変更されるのでしょうか?

4

2 に答える 2

1

Django は既存のテーブルを変更しません。ドキュメントにもそう書かれています。これは、django が情報が失われないことを保証できないためです。

既存のテーブルを変更する場合、2 つのオプションがあります。それらをドロップして syncdb を再度実行しますが、データを保持したい場合は何らかの方法でデータを保存する必要があります。他のオプションは、移行ツールを使用してこれを行うことです。Django は新しいデータベース スキーマの SQL を表示し、それを現在のバージョンのデータベースと比較して更新スクリプトを作成できます。

小さな変更であり、移行ツールに煩わされたくない場合は、データベースを手動で更新することもできますが、1 つを使用することをお勧めします。

于 2013-01-10T08:20:17.480 に答える
0

データベーステーブルに反映されるあらゆる種類の変更にはsouthを使用してください。ここに、south LinkforSouthのドキュメントを使用するためのリンクがあります。

于 2013-01-10T08:53:54.023 に答える