聞きたいこと
djangoでマイグレーションを取り消すためにpython manage.py migrate app_name zero
を実行したのですが、下のエラーが表示されてしまいます。
ただマイグレーションの取り消し自体は成功しているのですが、マイグレーションの取り消しをするたびにこのようなエラーがでるのも嫌なので、解決策をお聞きしたいです。
django.db.utils.ProgrammingError: (1146, "Table 'app_name.table_a' doesn't exist")
補足
apps.pyにて、当該アプリ内のテーブルにマスターデータを入れる処理をしているのですが、その部分をコメントアウトすると、上記エラーは発生しないです。
from django.apps import AppConfig from django.db.models.signals import post_migrate class ApiConfig(AppConfig): name = 'app_name' def ready(self): from .models import create_default_talbe_a from .models import create_default_table_b # 下2つをコメントアウトするとエラーが無くなる post_migrate.connect(table_a, sender=self) post_migrate.connect(table_b, sender=self)
table_bはtable_aに依存していて、table_aのidを参照しています。
なので、マイグレーション取り消し時に、逆順処理ができればいいのではないかと睨んではいますが、方法が浮かばない状態です。
(table_bをドロップした後、table_aをドロップ)
あなたの回答
tips
プレビュー