如何使用djdatabaseurl、psycopg2将Django代码推送到Heroku?

2024-03-29 12:25:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在Django构建一个web项目,并致力于为部署做好准备。我最初使用Sqlite3在Heroku上部署了该站点,我的数据库代码设置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

然而,由于Heroku短暂的文件系统,我意识到我需要切换到Postgres。在遵循了一些不同的指南之后,我对设置进行了以下更改。我首先删除了上述“数据库”,并将其替换为以下内容:

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:No module named dj_database_url”和我试图上传到Heroku的任何外部库似乎都有这个问题。我如何解决此问题并将我的网站投入生产?任何帮助都将不胜感激


Tags: djangoname数据库defaulturldbheroku站点