Settings.py не может найти psycopg2... проблема squlite3 и postgresql... нет такой таблицы: auth_user
Я пытаюсь развернуть простое приложение (учебный журнал из Python Crash Course) на heroku. Приложение запускается, но при входе в систему я получаю ошибку 500, а при debug=true ошибка выглядит так: no such table: auth_user.
Я понимаю, что это как-то связано с squlite3 и Postgresql, но когда я пытаюсь собрать код в настройках:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
сообщение об ошибке:
ImportError: DLL load failed while importing _psycopg: The specified module could not be found.
Я попытался установить и импортировать psycopg2, и оказалось, что он находится в файле requirements.txt.
Но я думаю, что пути не совпадают, так как psycopg2 находится в пути python, а setting.py находится в среде моего проекта.
Я очень запутался! Пожалуйста, помогите!
Вы неправильно настроили свои базы данных в settings.py. Вы пытаетесь использовать стандартную конфигурацию sqlite3 с движком PostgreSQL, что не работает. Также Heroku не очень хорошо работает с sqlite3, и не стоит использовать его в продакшене. Смотрите
Почему мои файлы не загружаются/удаляются из приложения? .
Замечательно, что вы установили psycopg2 - адаптер базы данных для PostgreSQL. Обычно вам нужно настроить базу данных PostgreSQL, как показано ниже:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "mydatabase",
"USER": "mydatabaseuser",
"PASSWORD": "mypassword",
"HOST": "127.0.0.1",
"PORT": "5432",
}
}
Убедитесь, что вы создали свою базу данных, и введите учетные данные в словарь DATABASES в файле settings.py. При развертывании на Heroku вам нужно будет предоставить свою базу данных на Heroku, выбрав аддон Postgre. Пожалуйста, смотрите Развертывание Django App на Heroku: Полное руководство для полного руководства по развертыванию вашего приложения Django на Heroku.