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

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

Check Also

Djangoメモ:templetesの設定

※前提はこちらの続きです。 ア …