1. ホーム
  2. python

[解決済み] Django 1.7 - makemigrations が変更を検出しない

2022-05-05 19:22:26

質問

タイトルの通り、マイグレーションがうまくいかないようです。

このアプリは元々1.6だったので、初期状態ではmigrationsが存在しないことは理解していますし、実際に python manage.py migrate と出る。

Operations to perform:
  Synchronize unmigrated apps: myapp
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
  Installing custom SQL...
  Installing indexes...
Running migrations:
  No migrations to apply.

にあるモデルを変更した場合 myapp と表示され、予想通り未移行のままです。

しかし、もし私が python manage.py makemigrations myapp と出る。

No changes detected in app 'myapp'

コマンドをどのように実行しても、アプリに変更があることは検出されず、アプリにマイグレーションファイルが追加されることもないようです。

アプリを強制的に移行して、本質的に "これは私の仕事のベースです" と言う方法か何かはありますか?それとも、私は何かを見逃しているのでしょうか?

私のデータベースはPostgreSQLのものですが、それが少しでも助けになるなら。

どのように解決するのですか?

OK、私は明白なステップを逃したように見えますが、他の誰かが同じことをする場合に備えて、これを投稿してください。

1.7にアップグレードした際、私のモデルがアンマネージド( managed = False ) - 私はそれらを True が、元に戻されたようです。

この行を削除し(デフォルトをTrueにする)、それから makemigrations は、すぐにマイグレーションモジュールを作って、今は動いています。 makemigrations は、管理されていないテーブルでは動作しません(後から考えても明らかです)。