【Django】新たなフィールド追加でpsycopg2エラー

Django

(最終更新月: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以外のファイルを全て削除しましょう

そのうえで、再度マイグレーションの事項をしてみてください!

✔当ブログは以下のような方に向けて書かれています

「Djangoでのアプリ開発を学びたい!」

「Djangoで開発したアプリをWebで公開するにはどうするの?」

✔当ブログ掲載の記事

  • Djangoで作る日報アプリ開発
  • WebアプリをWeb上に公開する方法
  • Webアプリ開発に必要なそのほかの情報
【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!

ITCブログにご協力いただける方は、以下もご検討いただけると嬉しいです。

ITCへ投げ銭をする

タイトルとURLをコピーしました