make migrationsを行っても、追加したアプリを認識せず、テーブルも作成されない、エラーも出ないという現象が発生しました。その原因と解決方法を備忘録として記載します。
環境
バージョン
python:3.10.4
django:4.0.4
django rest framework:3.13.1
現象
django restframeworkのプロジェクト内(以下参照)にフォルダを作成し、その中に、アプリを作成した。
その後、models.pyの内容を追記し、settings.pyのINSTALLED_APPS内に、追加したアプリを記載。
そして、makemigrationsを行うと、「No changes detected」が表示さる。当然、miggrateを行っても、DB内にテーブルは作成されない。
調べたこと
1.作成した、functionsフォルダ内に「init.py」ファイルは存在するか?
⇒あり
2.一度、全てテーブルを削除し、再度作成
⇒ 変化なし。(新規追加してmigrateしてるのに、認識しないので、当然と言えば当然w)
- 追加したアプリを指定してmakemigrationsを実行
⇒ GINGO!!!!
解決策
既にあるプロジェクトにアプリを追加する場合、ただ「python manage.py makemigrations」を行ってもダメなようです。
以下のように、アプリ名を指定して実行する必要があるようです。
無事、migrateすることができ、テーブルも作成できました。
※なぜこうなるのかは、調査中。