Проблема с БД 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 шт):
Вы настроили базу данных, но не выполнили миграции. Когда вы попытались запустить проект или зайти в админку, Django выдал ошибку, потому что в БД нет соответсвующих таблиц.
Примените миграции с помощью команды python manage.py makemigrations && python manage.py migrate, а затем создайте суперпользователя, чтобы зайти в админку python manage.py createsuperuser