利用するSqliteデータベース(db.sqlite3)にはまだモデル(テーブル)は作られてはいません。
ここで、モデルのマイグレーションファイルを作成して、データベースファイルにインストール(登録)を行います。
マイグレーションはコマンドプロンプトからコマンドを実行して行われます。
1. マイグレーションファイルの作成
プロジェクト「djangoMyLiteApp」をディレクトリ「C:\Users\user\」に作成した場合の、コマンド実行のコードです。
ファイル作成成功!
C:\Users\user\djangoMyLiteApp>python manage.py makemigrations myliteapp
Migrations for 'myliteapp':
myliteapp\migrations\0001_initial.py
- Create model MyLiteAppModel
マイグレーションファイルはアプリケーションの中にフォルダ(migrations)とともに自動生成されます。
≫...\myliteapp\migrations\0001_initial.py
2. マイグレーションの実行
マイグレーションを実行してモデルをデータベースにインストールします。
上記と同様、コマンドプロンプトから以下のようにコードを入力して実行してください。
マイグレーション成功!
C:\Users\user\djangoMyLiteApp>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, myliteapp, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying mydbapp.0001_initial... OK
Applying sessions.0001_initial... OK
モデルの定義の変更やモデルの追加等、データベースに関係する情報を変更した場合は、
その都度マイグレーション処理を行い、データベースを最新の状態に更新する必要があります。
マイグレーション処理で、エラーが出てどうしてもうまくいかない場合は次のようなことをしてみてください。
1. プロジェクトフォルダの中のデータベースファイル「db.sqlite3」を削除する。
2. アプリケーションフォルダの中の「migrations」フォルダをまるごと削除する。
上のどちらか一方を、あるいわ2つを同時に実行して、マイグレーションを最初からやり直してみてください。
この場合当然ですが、データベースについてはデータはすべて空になります。要注意...。
これらはあくまでもデータベース製作過程での対応になるかと思います。