我正在使用 Heroku 的 Postgres 插件,并从 Heroku Postgres 插件页面创建了一个新的生产数据库。我没有使用我的应用程序的资源页面将它直接添加到我的应用程序中。
现在我想将此数据库附加到我的应用程序,以便heroku pg命令识别它。
在将我的应用程序的DATABASE_URL配置变量设置为指向它之后,我可以使用数据库 btw ,但是heroku pg命令还不能识别它。
附加信息:以前的数据库是共享的,新的数据库是生产的。
我正在使用 Heroku 的 Postgres 插件,并从 Heroku Postgres 插件页面创建了一个新的生产数据库。我没有使用我的应用程序的资源页面将它直接添加到我的应用程序中。
现在我想将此数据库附加到我的应用程序,以便heroku pg命令识别它。
在将我的应用程序的DATABASE_URL配置变量设置为指向它之后,我可以使用数据库 btw ,但是heroku pg命令还不能识别它。
附加信息:以前的数据库是共享的,新的数据库是生产的。
您是否使用独立于应用程序的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
应用程序中的环境变量。这是您在本地为应用程序提供数据库时默认使用的变量,因此理论上,分配此值对您来说应该可以正常工作。
Heroku 插件现在可以跨应用程序附加,并且可以在单个应用程序上多次附加。
heroku addons:attach ADDON_NAME -a APP_NAME
来源:https ://devcenter.heroku.com/changelog-items/646
要知道插件的名称,请执行以下操作:
heroku addons
要将您在https://postgres.heroku.com/创建的数据库附加到您正在使用的实际 heroku 应用程序中,您不能使用任何pg 备份命令,据我所知,没有支持 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 备份命令。