【发布时间】:2013-12-28 19:43:08
【问题描述】:
我有一个来自另一个数据库的备份 sql 文件,我想将它导入 Heroku 的 postgres 数据库。你是怎么做到的?
【问题讨论】:
-
此解决方案也适用于某些人:stackoverflow.com/questions/42433414/…
标签: database postgresql heroku import
我有一个来自另一个数据库的备份 sql 文件,我想将它导入 Heroku 的 postgres 数据库。你是怎么做到的?
【问题讨论】:
标签: database postgresql heroku import
您必须在此命令中添加运行。它会成功的!
heroku pg:psql run --app YOUR_APP_NAME_HERE < updates.sql
【讨论】:
这就是你的做法:
heroku pg:psql --app YOUR_APP_NAME_HERE < updates.sql
如果你想将你的产品恢复到暂存状态(假设两者都是 heroku postgres 数据库):
heroku pgbackups:restore YOUR_STAGING_DATABASE_NAME `heroku pgbackups:url --app YOUR_PRODUCTION_APP_NAME` --app YOUR_STAGING_APP_NAME --confirm YOUR_STAGING_APP_NAME
确保保留 heroku pgbackups:url --app YOUR_PRODUCTION_APP_NAME 周围的特殊单引号。
Heroku 最近更新了他们的工具带,因此旧命令不再有效(有关更多信息,请参阅 this link)。以下是新版本的恢复命令。
heroku pg:backups restore \
`heroku pg:backups public-url -a YOUR_PRODUCTION_APP_NAME` \
YOUR_STAGING_DATABASE_NAME \
--app YOUR_STAGING_APP_NAME \
--confirm YOUR_STAGING_APP_NAME
【讨论】:
heroku pg:psql HEROKU_POSTGRESQL_GREEN_URL --app YOUR_APP_NAME_HERE < updates.sql 指定为非默认(不使用DATABASE_URL)作为例子。当然,用你自己的 db URL 环境变量代替我在这个例子中放的那个。
pg_dump -U postgres -d hawkishfinance > C:\Users\Fauzan\Projects\hawkishfinance.sql
heroku pg:psql --app hawkishfinance < hawkishfinance.sql
【讨论】:
制作备份文件:
pg_dump -U USERNAME DATABASE --no-owner --no-acl -f backup.sql
从 sql 文件恢复到 heroku:
heroku pg:psql --app APPNAME < backup.sql
(奖励)从 Heroku 应用程序数据库中删除所有表(示例):
heroku pg:reset --app APPNAME HEROKU_POSTGRESQL_ROSE
从 posgresql heroku 面板(psql 行)获取 DATABASE_URL
【讨论】:
将 SQL 加载到本地 Postgres 实例中并确保其正确。然后使用此处的说明转储数据:https://devcenter.heroku.com/articles/heroku-postgres-import-export
最后,将转储上传到公共网络服务器(如 S3)并恢复到 Heroku,如下所示:
heroku pgbackups:restore DATABASE 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump'
【讨论】: