teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答を追記

2020/08/01 04:21

投稿

hasami
hasami

スコア1277

answer CHANGED
@@ -4,4 +4,22 @@
4
4
 
5
5
  ```bash
6
6
  python manage.py migrate
7
- ```
7
+ ```
8
+
9
+ > PostgreSQLのDBを drop database で削除し、再度作成。
10
+ > makemigrations ⇒ migrate を行いました。マイグレーションは成功していますが
11
+
12
+ ここからは、調べたわけでなくマイグレーション動作から想像した意見です。
13
+
14
+ `Django`は、どのマイグレーションファイルを適用したかを記録しています。
15
+ また、モデルが変更されていなければ、`makemigrations`コマンドでマイグレーションファイルは作成されません。
16
+ ※`DBMS`を変更したことがないため、DBMSを変更した場合にマイグレーションファイルが作成されるかを把握しておりません。
17
+
18
+ よって、データーベースを削除しただけでは、マイグレーションファイルは作成されず、適用もされないと思います。
19
+
20
+ 開発時はモデルの変更が重なったとき、マイグレーションを最初からやり直すことが良くあります。このときは、下記を実行するカスタムコマンドを作成して実行しています。
21
+ - すべてのアプリのマイグレーションファイルを削除
22
+ - データーベースを削除
23
+ - マイグレーションの実行
24
+
25
+ [How to Reset Migrations](https://simpleisbetterthancomplex.com/tutorial/2016/07/26/how-to-reset-migrations.html)