Проблема с БД Django проекта при загрузке на хост Heroku

При разработке проекта и тестировании на локальном хосте, использовал в проекте БД SQLite. При загрузке на сервис Heroku, согласно инструкции, настроил проект под БД Heroku Postgres с помощью библиотеки dj_database_url в settings.py проекта:

db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)

Добавил в requirements.txt библиотеку psycopg2, так же, согласно по инструкции с интернета. Процесс загрузки на сервис прошел без ошибок, но при проверке сайта, на страницах, которым views.py передает словарь с модулями, выдает ошибку об их отсутствии:

Exception Value:    
relation "mods_mod" does not exist
LINE 1: ...d"."pictures_path", "mods_mod"."avatar_path" FROM "mods_mod"

которая возникает в строке:

{% for mod in mods %}

Я предположил, что БД почему то не заполнена данными, поэтому решил зайти в админ панель для проверки, но при попытке это сделать, после авторизации мне выдает подобную ошибку:

Exception Value:    
relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...

Скорее всего, я не понимаю, как переносятся данные с одной БД в другую, и так как нигде не нашел информации по этому поводу, подумал, что это происходит само по себе. Что делать в таком случае? Изменить дефолтную БД в самом проекте?


Ответы (1 шт):

Автор решения: Sergey S.

Вы настроили базу данных, но не выполнили миграции. Когда вы попытались запустить проект или зайти в админку, Django выдал ошибку, потому что в БД нет соответсвующих таблиц.

Примените миграции с помощью команды python manage.py makemigrations && python manage.py migrate, а затем создайте суперпользователя, чтобы зайти в админку python manage.py createsuperuser

→ Ссылка