Django 在Heroku上从Sqllite更改为Postgres-为什么不起作用?

Django 在Heroku上从Sqllite更改为Postgres-为什么不起作用?,django,postgresql,heroku,Django,Postgresql,Heroku,我有点困惑,希望有人能帮我 最初我用sqllite db将我的django应用程序上传到heroku帐户 这是我在DB设置文件中的内容 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } import dj_database_url db_from

我有点困惑,希望有人能帮我

最初我用sqllite db将我的django应用程序上传到heroku帐户

这是我在DB设置文件中的内容

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

import dj_database_url
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)
由于SQLlite每24小时都会刷新到其原始状态,所以它的工作效果并不好(但由于我需要演示系统,所以工作得非常好)

然而,现在我必须让它有效率,所以我想改变数据库连接到postgres。所以我使用了我用heroku创建的postgres DB的凭据,我的DB在设置中如下所示

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'd4drq1yytest',
        'USER': 'xvvqgkjtest',
        'PASSWORD': 'test5y55y5y5y5y5y5y5y5y5y54y45',
        'HOST': '777-77-77-67-7.compute-1.amazonaws.com',
        'PORT': '5432',
    }
}

import dj_database_url
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)
但即使我更改了设置文件并重新部署了新文件,我仍然看到我的heroku应用程序连接到了我的sqllite数据库


我做错了什么?(我使用我的github的主早午餐进行部署。)

如果您还没有,您可能需要在heroku应用程序的仪表板中添加heroku postgres作为应用程序

看起来你使用的代码和我连接heroku的postgres到heroku的代码一样。你只需要说

导入dj\u数据库\u url
db_from_env=dj_database_url.config()
数据库['default'].更新(db_from_env)

然后确保已经安装了pip whitenoise,并将其添加到requirements.txt中。通信并推送到heroku后,您可能希望在cmd或terminal上运行
heroku run bash
。然后,您可能需要运行
python manage.py makemigrations yourappname
,然后您可能需要运行
python manage.py migrate
,如果没有错误,您可能需要检查应用程序的heroku仪表板,单击postgres,查看是否有任何postgres表正在使用。如果是,那么你使用的是heroku postgres

heroku可能不需要下面的代码行

数据库={
“默认值”:{
“引擎”:“django.db.backends.postgresql_psycopg2”,
“名称”:“d4drq1yytest”,
“用户”:“xvvqgkjtest”,
“密码”:“Test5Y55Y5Y5Y5Y5Y5Y5Y5Y5Y5Y54Y45”,
“主机”:“777-77-77-67-7.compute-1.amazonaws.com”,
“端口”:“5432”,
}
}

这应该是调用要使用本地主机测试的数据库的地方