1. ホーム
  2. python

[解決済み] Django 1.7 - makemigrations の後に migrate を実行すると "No migrations to apply" と表示される。

2023-06-30 04:32:16

質問

Django1.7とMezzanineを使用しています。私は(Mezzanineのドキュメントに従って)別のアプリの"profiles"に格納されている単純なプロファイルを作成します。

class RoadmapProfile(models.Model):
    user = models.OneToOneField("auth.User")
    fullname = models.CharField(max_length=100, verbose_name="Full name")

migrationsの作成が返ってくる。

  Migrations for 'profiles':
      0001_initial.py:
        - Create model RoadmapProfile

"プロファイルの移行"を実行すると。

Operations to perform:
  Apply all migrations: profiles
Running migrations:
  No migrations to apply.

問題は、mezzanine.accountsに関連するページを開こうとすると(例えば、アカウントの更新)、クラッシュしてしまうことです。

OperationalError at /accounts/update/

no such column: profiles_roadmapprofile.fullname

私は何を間違えたのでしょうか?

どうすればよいのでしょうか?

テーブルがすでに存在していたため、最初の移行がごまかされたようです (おそらく古いスキーマを使用していたのでしょう)。

https://docs.djangoproject.com/en/1.8/topics/migrations/#adding-migrations-to-apps

<ブロッククオート

"これは、あなたのアプリのための新しい初期マイグレーションを作成します。ここで を実行すると、マイグレートが を実行すると、Django は初期マイグレーションがあることと、作成したいテーブルが既に存在することを検出します。 を実行すると、作成したいテーブルが既に存在することを検出し、そのマイグレーションを既に適用したものとしてマークします。 を適用済みとマークします。 ."

さもないと、no-such-tableエラーが発生します :)

applied-migrations テーブルをクリーンアップしましたか?それも、適用されないマイグレーションの一般的な原因です。