Djangoメモ:既存データベースの初期化-migrationリセット

Djangoで当初データベースに設定したモデルの特定フィールドを削除した場合に、エラーが発生する対策の一例です。うまくいかない場合は試してみるとうまくいくかもしれません。今回の方法は既存データベースを初期化して、新たに設定したいデータベースで上書きする処理です。尚、前提となるデータベースは、Djangoにデフォルトで含まれているSqliteになります。

Migrationの履歴を削除するためにターミナル上で以下タイプをします。hogehogeは対象となるアプリ名です。

python manage.py migrate --fake hogehoge zero

以下タイプし、データベースシェルで行います。

python manage.py dbshell

まず、テーブル一覧から削除したいテーブル名を確認します。

sqlite> .tables

次に、対象データベースを削除します。hogehoge-dbは対象のデータベース名です。

sqlite> drop table hogehoge-db;

尚、models.py, forms.py, views.py, urls.py等において、上記削除したデータベースに関連する設定項目は削除等、アップデートして各ファイルを保存します。

シェルをCtrl+z(windowsの場合)で抜け出し、通常通りにmigrationします。

python manage.py makemigrations

データベースは存在するため、fakeコマンドでmigrateします。

python manage.py migrate --fake-initial

About TIER

TIERは大手企業から中小企業、民間企業から行政まで、海外展開に必要なサービスをワンストップで支援しております。海外マーケティングセールスから現地調達、海外向けクリエイティブ制作、グローバル人材採用支援まで幅広く対応しております。お気軽にお問い合わせください。

Check Also

Python 条件分岐 – if文の使い方とサンプルコード

プログラミングには制御構文の代 …