Heroku上的Django应用程序:如何访问共享数据库

Heroku上的Django应用程序:如何访问共享数据库,django,database,heroku,Django,Database,Heroku,在Heroku上,可以通过以下方式在应用程序之间共享数据库: 谢谢。Heroku总是将配置详细信息作为环境变量提供。执行加载项时:attach将打印它为附加的加载项创建的变量的名称;或者,您可以使用-as标志指定它 但是Heroku说凭证不是永久性的,因此我们不应该在settings.py中直接指定名称、引擎、用户、密码等。问题实际上是在数据库字典中添加了一个项目,例如DATABASES={'default':dj_database_url.config,'course':?}以及应该用什么来替

在Heroku上,可以通过以下方式在应用程序之间共享数据库:


谢谢。

Heroku总是将配置详细信息作为环境变量提供。执行加载项时:attach将打印它为附加的加载项创建的变量的名称;或者,您可以使用-as标志指定它


但是Heroku说凭证不是永久性的,因此我们不应该在settings.py中直接指定名称、引擎、用户、密码等。问题实际上是在数据库字典中添加了一个项目,例如DATABASES={'default':dj_database_url.config,'course':?}以及应该用什么来替换,我似乎得到了一个空配置:“课程”:“{'ATOMIC_REQUESTS':False,'AUTOCOMMIT':True,'ENGINE':'django.db.backends.dummy,'CONN_MAX_AGE':0,'OPTIONS':{},'TIME_ZONE':None,'NAME':,'USER':,'PASSWORD':,'HOST','PORT':,'TEST':{'CHARSET':None,'COLLATION','None','NAME','None,'MIRROR','None}}}发现问题:需要将_URL添加到连接字符串。例如,如果我在heroku attach命令中使用-作为我的\u ATTACHED\u DB\u URL,那么.config中的连接字符串参数应该是我的\u ATTACHED\u DB\u URL。真奇怪!顺便说一句,为了在两个应用程序之间共享数据库,两个应用程序必须具有完全相同的模型定义。对吗?
$ heroku addons:attach <databaseName> -a <appName>
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES = {'default':dj_database_url.config()}
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
heroku addons:attach <databaseName> -a <appName> --as MY_ATTACHED_DB_URL
DATABASES = {
    'default':dj_database_url.config(),
    'course': dj_database_url.config('MY_ATTACHED_DB_URL')
}