我正在使用Heroku的Postgres插件,我从Heroku Postgres插件页面创建了一个新的生产数据库。 我没有使用我的应用程序的“资源”页面将其直接添加到我的应用程序中。
现在我想将此数据库附加到我的应用程序中,以便 heroku pg 命令识别它。
我可以在设置我的应用的 DATABASE_URL 配置变量指向它后使用数据库btw,但 heroku pg 命令不能认识它。
其他信息:以前的数据库是共享的,新的数据库是生产。
答案 0 :(得分:9)
您是否使用与应用无关的https://postgres.heroku.com/网站添加了数据库?或者你刚刚在Heroku控制面板中创建了一个postgresql数据库?
如果您在https://postgres.heroku.com/上创建了数据库,则不将通过heroku pg:info
命令查看数据库。但是,将数据库添加到应用程序的方法是:
heroku config:set DATABASE_URL=postgres://blah:blah@ec2-23-23-122-88.compute-1.amazonaws.com:5432/omg
我们在那里做的是将您的数据库分配给应用程序中的DATABASE_URL
环境变量。这是在您的应用程序本地配置数据库时默认使用的变量,因此从理论上讲,分配此值应该对您有用。
答案 1 :(得分:2)
Heroku附加组件现在可以跨应用程序连接,并且可以在单个应用程序上多次附加。
heroku addons:attach ADDON_NAME -a APP_NAME
来源:https://devcenter.heroku.com/changelog-items/646
要知道插件的名称,请执行以下操作:
heroku addons
答案 2 :(得分:0)
要使您在https://postgres.heroku.com/创建的数据库附加到您正在使用的实际heroku应用程序中,您不能使用pg backup commands中的任何一个,据我所知,没有支持Heroku将数据库附加到heroku应用程序的方式。
但是,您可以使用pg_dump创建数据库备份,然后使用pg_restore填充附加到应用程序的新数据库:
pg_dump -i -h hostname -p 5432 -U username -F c -b -v -f "backup-filename" database_name
完成后,您可以使用以下命令填充新数据库:
pg_restore -i -h new_hostname -p 5432 -U new_username -d new_database_name -v "same_backup_filename"
即使您从“基本计划”升级到“起重机计划”,您仍然需要进行备份和恢复,但由于数据库已经附加到您的应用程序,因此您可以使用heroku备份命令。