Django:当生产postgres数据库位于heroku上时,如何建立本地Postgresql连接?
我的生产postgresql数据库正在Heroku上成功运行。在此之前,我在开发过程中将本地postgres数据库配置为默认数据库。但是,现在,在我用Django:当生产postgres数据库位于heroku上时,如何建立本地Postgresql连接?,django,postgresql,heroku,Django,Postgresql,Heroku,我的生产postgresql数据库正在Heroku上成功运行。在此之前,我在开发过程中将本地postgres数据库配置为默认数据库。但是,现在,在我用dj数据库url钩住Heroku postgres之后,每当我运行python manage.py runserver在本地进行更改时,我都会遇到以下错误: conn = _connect(dsn, connection_factory=connection_factory, **kwasync) django.db.utils.Operation
dj数据库url
钩住Heroku postgres之后,每当我运行python manage.py runserver
在本地进行更改时,我都会遇到以下错误:
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: server does not support SSL, but SSL was required
这是我的数据库设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'DATABASE_URL': os.getenv('DATABASE_URL'),
'NAME': os.getenv('DATABASE_NAME'),
'USER': os.getenv('DATABASE_USER'),
'PASSWORD': os.getenv('DATABASE_PASSWORD'),
'HOST': os.getenv('DATABASE_HOST'),
'PORT': os.getenv('DATABASE_PORT')
}
}
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=600, ssl_require=True)
DATABASES['default'].update(db_from_env)
即使不是必需的,我在env
中的本地数据库的URL
如下所示:
DATABASE_URL=postgres://{user}:{password}@{host}:{port}/{database name}?sslmode=require
它只有在我对dj数据库url
片段进行注释时才起作用,即runserver
成功运行,但这不是一个解决方案
那么,我如何在Heroku Postgres中运行本地Postgres数据库呢?您可以将每个环境的设置分开,如中。谢谢,这篇文章提供了一个可用的版本。一个重要的事情是,我必须在Heroku配置变量中添加
DJANGO\u设置\u模块
->.SETTINGS.production
。否则,heroku运行。。。makemigrations
和migrate
将抛出无法想象的错误。