(最終更新月:2021年7月)
モデルフィールド書き換え時などに時々起こる、
psycopg2.errors.UndefinedTable: relation "nippo_nippomodel" does not exist
結局データベースを削除するしかない!ということで泣く泣く再設定しなおすことになるのですが、今回、うまくいく方法が見つかりましたので同じ悩みの方のお役に立てれば幸いです!
ズバリ!解決方法
ステップ1
urls.pyでインポートに関する部分をコメントアウト!
エラーメッセージで記されているモデル内のurls.pyへ移動します
views.pyよりインポートしている箇所と、urlpatternsのリストを空にするようコメントアウト(行の最初に「#」)します
【参考例】
from django.urls import path, include
# from .views import (ListFuncView, NippoListView,
# nippoDetailView, NippoDetailView,
# nippoCreateView, NippoCreateView,
# NippoUpdateView,
# NippoDeleteView,
# nippoUpdateView)
urlpatterns = [
# path("", NippoListView.as_view(),name="nippo-list"),
# path("detail/<slug:slug>/", NippoDetailView.as_view(), name="nippo-detail"),
# path("create/", NippoCreateView.as_view(), name="nippo-create"),
# path("edit/<slug:slug>/", NippoUpdateView.as_view(), name="nippo-update"),
# path("delete/<slug:slug>/", NippoDeleteView.as_view(), name="nippo-delete"),
# path("list/", ListFuncView, name="nippo-func-list"),
# path("<int:pk>/", nippoDetailView, name="nippo-detail-func"),
# # path("create/", nippoCreateModelView, name="nippo-create"),
# path("update/<slug:slug>/", nippoUpdateView, name="nippo-edit"),
# path("api/", include("nippo.api.urls")),
]
ステップ2
$ python manage.py makemigration
うまくいきましたか?
$ python manage.py migrate
私はこの流れでうまくいきました!皆様はいかがでしょうか?
もしまだうまくいかないという方は、もう一度マイグレーションを実行する前に下記をお試しください!
補足
下記の方法も場合よっては有効です
各app内のmigrationsフォルダのファイルを削除する
migrationsファイル内の__init__.py以外のファイルを全て削除しましょう
そのうえで、再度マイグレーションの事項をしてみてください!