【Django(エラー処理)】psycopg2.errors.UndefinedTable: relation “nippo_nippomodel” does not exist

Django

(最終更新月:2021年7月)

モデルフィールド書き換え時などに時々起こる、

psycopg2.errors.UndefinedTable: relation "nippo_nippomodel" does not exist

結局データベースを削除するしかない!ということで泣く泣く再設定しなおすことになるのですが、今回、うまくいく方法が見つかりましたので同じ悩みの方のお役に立てれば幸いです!

おススメ記事!興味ある方はこちらもどうぞ!

【超簡単】RaspberryPIでUbuntu搭載のPCを作る
【DigitalOcean】Dropletsを作成する5ステップ

ズバリ!解決方法

ステップ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以外のファイルを全て削除しましょう

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

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

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

という方は必見です!

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