如何将数据库附加到Heroku中的应用程序?

时间:2012-07-28 11:27:26

标签: database postgresql heroku

我正在使用Heroku的Postgres插件,我从Heroku Postgres插件页面创建了一个新的生产数据库。 我没有使用我的应用程序的“资源”页面将其直接添加到我的应用程序中。

现在我想将此数据库附加到我的应用程序中,以便 heroku pg 命令识别它。

我可以在设置我的应用的 DATABASE_URL 配置变量指向它后使用数据库btw,但 heroku pg 命令不能认识它。

其他信息:以前的数据库是共享的,新的数据库是生产。

3 个答案:

答案 0 :(得分:9)

您是否使用与应用无关的https://postgres.heroku.com/网站添加了数据库?或者你刚刚在Heroku控制面板中创建了一个postgresql数据库?

如果您在https://postgres.heroku.com/上创建了数据库,则将通过heroku pg:info命令查看数据库。但是,将数据库添加到应用程序的方法是:

  1. 登录https://postgres.heroku.com/
  2. 单击要附加到应用程序的数据库。
  3. 在'连接设置'下,点击右上角的配置按钮。
  4. 然后点击'网址'选项。
  5. 复制您的数据库网址,这应该是" postgres:// blah:blah@ec2-23-23-122-88.compute-1.amazonaws.com:5432 / omg"。
  6. 在您的应用程序中,在命令行上运行heroku config:set DATABASE_URL=postgres://blah:blah@ec2-23-23-122-88.compute-1.amazonaws.com:5432/omg
  7. 我们在那里做的是将您的数据库分配给应用程序中的DATABASE_URL环境变量。这是在您的应用程序本地配置数据库时默认使用的变量,因此从理论上讲,分配此值应该对您有用。

答案 1 :(得分:2)

  

Heroku附加组件现在可以跨应用程序连接,并且可以在单个应用程序上多次附加。

heroku addons:attach ADDON_NAME -a APP_NAME

来源:https://devcenter.heroku.com/changelog-items/646

要知道插件的名称,请执行以下操作:

heroku addons

来源:https://devcenter.heroku.com/articles/managing-add-ons

答案 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备份命令。

相关问题