如何将.sql文件导入我的Heroku postgres数据库?

Som*_*Guy 36 database postgresql import heroku

我有一个来自另一个数据库的备份sql文件,我想导入Heroku的postgres数据库.你是怎样做的?

Ser*_*eyB 75

这是你如何做到的:

heroku pg:psql --app YOUR_APP_NAME_HERE < updates.sql
Run Code Online (Sandbox Code Playgroud)

如果你想将你的作品恢复到舞台上(假设两者都是heroku postgres DBs):

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
Run Code Online (Sandbox Code Playgroud)

请务必保留"heroku pgbackups:url --app YOUR_PRODUCTION_APP_NAME"周围的特殊单引号.

-------- HEROKU TOOLBELT UPDATE --------

Heroku最近更新了他们的工具带,因此旧命令不再有效(有关详细信息,请参阅此链接).以下是restore命令的新版本.

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
Run Code Online (Sandbox Code Playgroud)

  • 在第一个示例中,如果您在应用程序上有多个数据库,则可以通过执行`heroku pg:psql HEROKU_POSTGRESQL_GREEN_URL --app YOUR_APP_NAME_HERE <updates来指定非默认值(不使用`DATABASE_URL`的数据库).以sql`为例.当然,用我自己的db URL环境变量替换我在这个例子中放置的那个. (3认同)
  • 谢谢。它是一个真正的救星 (2认同)

Abe*_*bel 18

制作备份文件:

pg_dump -U USERNAME DATABASE --no-owner --no-acl -f backup.sql 
Run Code Online (Sandbox Code Playgroud)

从sql文件恢复到heroku:

heroku pg:psql --app APPNAME < backup.sql 
Run Code Online (Sandbox Code Playgroud)

(Bonus)从heroku app数据库中删除所有表(示例):

heroku pg:reset --app APPNAME HEROKU_POSTGRESQL_ROSE
Run Code Online (Sandbox Code Playgroud)

从posgresql heroku面板获取DATABASE_URL(psql行)

  • 谢谢!我看到的其他任何地方都表明我必须上传到S3. (2认同)
  • ---&gt; 连接到 DATABASE_URL 输入是 PostgreSQL 自定义格式转储。使用 pg_restore 命令行客户端将此转储恢复到数据库。 (2认同)