1. ホーム
  2. python

[解決済み] Django の manage.py を使って CLI からデータベースをクリアする最も簡単な方法は何ですか?

2023-01-01 14:47:12

質問

私はDjangoを使用してMySQLでウェブサイトを構築しています。今私は学習しているので、私は非常に頻繁にモデルを変更する必要があるので、私はすべてのテーブルがクリアされ、新しいテーブルが作成されるようにしたいです。

しかし syncdb は既存のテーブルには触れません。この問題を扱うのに何か良い方法はないでしょうか?

どのように解決するのですか?

データにこだわらない場合。

最良の方法は、データベースを削除して syncdb を再度実行することです。あるいは、実行することもできます。

Django の場合 >= 1.5

python manage.py flush

Django < 1.5用

python manage.py reset appname

(を追加することができます。 --no-input をコマンドの最後に追加すると、対話型プロンプトをスキップすることができます)。

データを気にするのであれば

docsから。

syncdbは モデルに対してのみテーブルを作成します。 テーブルを作成します。それは決してALTER TABLEステートメントを発行することはありません。 ステートメントを発行しません。 モデルクラスとデータベース スキーマの変更には、しばしばある種の曖昧さが伴います。 モデルクラスとデータベーススキーマの変更には、ある種の曖昧さが伴うことが多く、そのような場合、 Django は は正しい変更を推測しなければなりません。 を推測しなければなりません。というリスクがあります。 重要なデータがその過程で失われる危険性があります。 その過程で重要なデータが失われる危険性があります。

モデルに変更を加えた場合 を変更し、データベースのテーブルを変更したい場合 を変更したい場合、sql コマンドを使用します。 新しいSQL構造を表示し 既存のテーブルと比較し スキーマと比較し、変更箇所を確認します。

https://docs.djangoproject.com/en/dev/ref/django-admin/

参考 よくある質問 https://docs.djangoproject.com/en/dev/faq/models/#if-i-make-changes-to-a-model-how-do-i-update-the-database

南はこんな人にもおすすめ ( http://south.aeracode.org/docs/about.html#key-features )もお勧めですが、私は試したことがありません。