Таблица пользователей не создана при развертывании django, но суперпользователь создан в heroku bash
Я пытаюсь загрузить свое первое приложение django и уже некоторое время борюсь с этой проблемой, помощь будет признательна.
Я уже настроил свой проект на heroku, я следовал этому руководству: https://www.youtube.com/watch?v=6DI_7Zja8Zc в котором модуль django_heroku используется для настройки DB, вот ссылка на библиотеку https://pypi.org/project/django-heroku/
Приложение выдает ошибку при входе в систему, как будто таблицы пользователей не существует, но я уже создал суперпользователя с помощью функции heroku bash, после применения миграций с помощью "heroku run python manage.py migrate". Когда я выполняю команду "ls" на heroku bash, вот моя директория:
manage.py Procfile requirements.txt runtime.txt smoke staticfile
"smoke" - это моя папка app, должен ли я видеть db в этой директории? Если db не создана, как я могу создать суперпользователя, используя функцию heroku bash?
Вот конфигурация БД, которую дает мне django на сервере:
{'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.sqlite3',
'HOST': '',
'NAME': PosixPath('/app/db.sqlite3'),
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIGRATE': True,
'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': ''}}
Я вижу, что db - sqlite3, а должен быть postgreSQL, но я понимаю, что это должна сделать библиотека django-heroku.
Я не знаю, какая еще информация может быть полезна, потому что у меня нет опыта развертывания, поэтому я буду ждать запроса на дополнительную информацию, чтобы отредактировать этот вопрос.
Мой файл gitignore выглядит так:
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
Вот нижняя часть моего файла settings.py:
...
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfile')
STATIC_URL = '/static/'
django_heroku.settings(locals())
Спасибо.
Если вы посмотрите на репозиторий django-heroku
на GitHub, я думаю, вы обнаружите, что он был заброшен. Там есть баннер, гласящий
Это хранилище было архивировано владельцем. Теперь оно доступно только для чтения.
и не имеет нового коммита в ветке master
с октября 2018 года.
Библиотека heroku-on-django
призвана стать обновленной заменой для django-heroku
:
Это был форк от django-heroku, поскольку он был заброшен, а затем переименован в django-on-heroku, поскольку старый проект был архивирован.
Он также находится в некотором застое (последний коммит в master
на момент написания статьи датируется октябрем 2020 года), но он должен работать лучше, чем django-heroku
.
В любом случае, убедитесь, что вы поместили это в нижней части вашего settings.py
, как указано в документации:
# Configure Django App for Heroku.
import django_on_heroku
django_on_heroku.settings(locals())