0

私は開発の初期段階にあり、モデルはかなり変化しています。
古いテーブルを削除し続けてから、「syncdb」を実行する必要があります

syncdb が古いテーブルを変更しない理由は理解できますが、

古いテーブルを自動的に削除してから syncdb を実行することは可能ですか (または他の方法はありますか)。

4

2 に答える 2

2

私が通常これを行う方法は、データベースレベルです。たとえば、postgres を使用していて、DB 全体を吹き飛ばして最初からやり直したい場合は、次のようにします。

dropdb -U postgres "dbname"
createdb -U postgres -O "db_user" "db_name"

私が取り組んでいる長いプロジェクトでは、fabfileを使用して上記のようなタスクを自動化したり、運用サーバーから最新のデータベースを取得したり、ローカルの開発データベースを上書きしたりしています。

また、関連するのはデータベースの「移行」です。これは、本番環境でしばらく実行した後にコードを変更するときに必要になります。多くの人/アプリがSouthを使用していますが、私は自分のサイトではNashvegasを好みます。

Nashvegas では、データベースを変更するための生の SQL コマンドを含む 0001_add_field_blah.sql ファイルを作成します。例えば:

ALTER TABLE myapp_model RENAME COLUMN first_name TO given_name;
于 2012-06-02T17:44:36.307 に答える
0

私は使用しますpython manage.py reset <app>。プロジェクト全体でそれを行う方法はないと思います。

于 2012-06-02T17:25:53.077 に答える