Python Django - Internal Error ProgrammingError relation does not exist

Acc-lab

This might probably be a duplicated question, but I can't find a post to answer my questions yet. Any post that is similar to this may help is appreciated.

I tried to host my Django app using heroku.com

git add .
git commit -m "(commit_name)"
git push heroku master

When I tried to test the website (/questions/1), the website shows an Error 500 (Internal Error). First it shows a ProgrammingError: relation does not exist. After that I did $ heroku run python manage.py migrate try to solve the problem. The original error disappeared, but instead this happened:

2020-08-29T11:05:42.668070+00:00 app[web.1]: Internal Server Error: /questions/1
2020-08-29T11:05:42.668070+00:00 app[web.1]:
2020-08-29T11:05:42.668070+00:00 app[web.1]: DoesNotExist at /questions/1
2020-08-29T11:05:42.668071+00:00 app[web.1]: Question matching query does not exist.

Settings.py:

import django_heroku

from pathlib import Path

import os

#--------------------(ommited)--------------------#

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['*']


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'myweb.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates'),],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'myweb.wsgi.application'


# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}


# Password validation
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/3.1/topics/i18n/

LANGUAGE_CODE = 'zh-Hant'

TIME_ZONE = 'Asia/Taipei'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

# Activate Django-Heroku.
django_heroku.settings(locals())

Models.py:

from django.db import models
from django.utils import timezone
import json

# Create your models here.

class Code(models.Model):
    code = models.TextField()
    number = models.IntegerField()

class Question(models.Model):
    title = models.TextField()
    text = models.TextField()
    judges = models.TextField()
    number = models.IntegerField()

    class Meta:
        ordering = ['number']

    def set_judges(self, x):
        self.judges = json.dumps(x)

    def get_judges(self):
        return json.loads(self.judges)

wsgi.py:

import os

from dj_static import Cling
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myweb.settings')

application = Cling(get_wsgi_application())

Any suggestions or things I should try? Thank you.

[EDIT]: It seems that the database is empty now so it cause the error. But when I run the same file in my computer as I git push to heroku, the database isn't empty and it works fine.

marcanuy

According to your settings file, you are using sqlite as the database, and you can't use it in Heroku.

Heroku uses an an ephemeral filesystem.

You can write to it, and you can read from it, but the contents will be cleared periodically. If you were to use SQLite on Heroku, you would lose your entire database at least once every 24 hours.

That's why it works locally but not on Heroku, you need to use another database engine like postgresql for example.

Learn more about it at: https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Django error: relation "users_user" does not exist

ProgrammingError: relation "django_session" does not exist error after installing Psycopg2

relation "account_emailaddress" does not exist - django error

ProgrammingError at / relation "main_post" does not exist

ProgrammingError: relation "django_site" does not exist

Django + posgtres relation does not exist error

django.db.utils.ProgrammingError: relation "bot_trade" does not exist

Django 1.8 test issue: ProgrammingError: relation "auth_user" does not exist

"django.db.utils.ProgrammingError: relation "auth_user" does not exist" Django V2.0

ProgrammingError: relation "django_session" does not exist

django.db.utils.ProgrammingError: relation "django_content_type" does not exist

django.db.utils.ProgrammingError: Could not load : column "" of relation "" does not exist

psycopg2.ProgrammingError: column of relation does not exist

psycopg2.ProgrammingError: relation "event" does not exist

Django test fails with 'django.db.utils.ProgrammingError: relation "django_content_type" does not exist'

django.db.utils.ProgrammingError: relation "..." does not exist

Django: Relation does not exist in Postgresql

Django Rest Framework "django.db.utils.ProgrammingError: relation "patient" does not exist"

Django psycopg2.ProgrammingError relation does not exist using custom model Manager

Django migrations: relation does not exist

Django: relation does not exist

executing raw sql in django error: relation does not exist

relation "blog_blog" does not exist - error in Django app

One more "django.db.utils.ProgrammingError: relation "device_gclouddevice" does not exist"

django.db.utils.ProgrammingError: relation "company_company" does not exist when running makemigrations

django.db.utils.ProgrammingError: relation does not exist with recursive model

Relation does not exist error in Django after postgresql integration

Relation does not Exist/ Programming Error in django

Django - ProgrammingError - column does not exist