【发布时间】:2020-05-04 11:02:19
【问题描述】:
我目前正在 Django 中构建一个 Web 项目,并致力于让该站点为部署做好准备。我最初使用 Sqlite3 将站点部署在 Heroku 上,我的数据库代码设置如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
但是,由于 Heroku 的临时文件系统,我意识到我需要切换到 Postgres。在遵循了一些不同的指南之后,我对我的设置进行了以下更改。我首先删除了上面提到的“DATABASES”并用以下内容替换它:
import dj_database_url, psycopg2
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': *************,
'USER': **************,
'PASSWORD': ************************************,
'HOST': *********************,
'PORT': '5432',
}
}
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
当我进行这些更改时,一切都在本地 Django 开发服务器 (127.0.0.1:8000) 上完美运行,但是一旦我通过 Git 和 Heroku 推送更改,我尝试在 Heroku 上打开我的网站并得到“应用程序错误”和检查我的日志的建议。哪个报告“ModuleNotFoundError:没有名为 dj_database_url 的模块”以及类似地我尝试上传到 Heroku 的任何外部库似乎都有这个问题。如何解决此问题并将我的网站投入生产?任何帮助将不胜感激。
【问题讨论】: