There is something wrong with my PostgreSQL configuration with my Django CMS.
Locally when testing with placeholder content using db.sqlite3 everything runs as expected. But now I am trying to deploy to Heroku. I’ve successfully exported remote Postgres db’s locally in the past. After exporting, I run all the standard makemigrations and migrate commands which all return OK. But now when I open the Admin Dashboard and go to enter content into one of my apps, Django throws the error copied below.
I tried backing up my migrations files and creating new migrations from scratch. That didn’t help.
What is the error below trying to say? What other information could I provide to help troubleshoot this and provide further clarity?
Here is my traceback:
[12/Mar/2023 16:55:21] "GET /admin/ HTTP/1.1" 200 7830
Internal Server Error: /admin/landings/pagecontent/
Traceback (most recent call last):
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "landings_pagecontent" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "landings_pagecontent"
^
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/contrib/admin/options.py", line 686, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/views/decorators/cache.py", line 62, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 242, in inner
return view(request, *args, **kwargs)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/utils/decorators.py", line 46, in _wrapper
return bound_method(*args, **kwargs)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/utils/decorators.py", line 133, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/contrib/admin/options.py", line 1931, in changelist_view
cl = self.get_changelist_instance(request)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/contrib/admin/options.py", line 834, in get_changelist_instance
return ChangeList(
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/contrib/admin/views/main.py", line 123, in __init__
self.get_results(request)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/contrib/admin/views/main.py", line 279, in get_results
result_count = paginator.count
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/utils/functional.py", line 57, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/core/paginator.py", line 96, in count
return c()
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/models/query.py", line 621, in count
return self.query.get_count(using=self.db)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 559, in get_count
return obj.get_aggregation(using, ["__count"])["__count"]
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 544, in get_aggregation
result = compiler.execute_sql(SINGLE)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1398, in execute_sql
cursor.execute(sql, params)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 103, in execute
return super().execute(sql, params)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 84, in _execute
with self.db.wrap_database_errors:
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/home/<user>/dev/projects/python/2018-and-2020/<project-dir>/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "landings_pagecontent" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "landings_pagecontent"
Also notable is:
The above exception (relation "landings_pagecontent" does not exist LINE 1: SELECT COUNT(*) AS "__count" FROM "landings_pagecontent" ^ ) was the direct cause of the following exception:
/home/<user>/dev/projects/python/2018-and-2020/<project>/venv/lib/python3.10/site-packages/django/core/handlers/exception.py, line 55, in inner
response = get_response(request)
Here is my models.py for this landings app:
from django.db import models
from ckeditor.fields import RichTextField
# from django.template.defaultfilters import slugify
class PageContent(models.Model):
# title = models.CharField(max_length=200)
slug = models.SlugField(null=False, unique=True, blank=True)
page_type = models.CharField(max_length=20)
body = RichTextField(config_name='default',max_length=300000,blank=True, null=True)
pure_html_body = models.TextField(blank=True)
def __str__(self):
return f'{self.page_type}'
Here is my app’s CBV:
from django.views.generic import DetailView
from .models import PageContent
class PageView(DetailView):
model = PageContent
template_name = "landings/page_detail.html"
context_object_name = 'contents'
Here is my app’s urls.py:
from django.urls import path, include
from .views import PageView
app_name= 'landings'
urlpatterns = [
path('', PageView.as_view(),name='the_gate'),
path('<str:slug>/', PageView.as_view(),name='home'),
]