30

我在 Heroku 上使用 Postgres,需要从我的生产数据库中转储一个表并将其转储到我的暂存数据库中。我安装了 heroku 工具带,但不知道如何转储单个数据库表以导入我的暂存数据库。

4

3 回答 3

67

您可以像这样转储单个数据表:

$ pg_dump --no-acl --no-owner -h [host ip].compute-1.amazonaws.com -U [user name] -t [table name] --data-only [database name] > table.dump

您可以通过以下方式获得所需的所有值:

$ heroku pg:credentials:url [DATABASE] -a [app_name]
Connection info string:
   "dbname=[database name] host=[host ip].compute-1.amazonaws.com port=5432 user=[user name] password=[password] sslmode=require"
Connection URL:
    postgres://[username]:[password]@[host ip].compute-1.amazonaws.com:5432/[database name]

这将提示您输入密码。输入它,然后您应该继续table.dump在本地驱动器上获取文件。

您可能希望在暂存时截断表:

$ echo "truncate [table];" | heroku pg:psql [DATABASE] -a staging_app

使用该文件,您可以使用对登台应用程序的新调用 psqlConnection URL:输出并仅恢复该表。pg:credentials

$ psql "[pasted postgres:// from pg:credentials:url of staging app]" < table.dump
SET
SET
...
...
...
...
$ 
于 2013-04-22T16:00:28.937 回答
4

@catsbys 回答

我还需要添加端口

pg_dump --no-acl --no-owner -h [host ip].compute-1.amazonaws.com -p [port] -U [user name] -t [table name] --data-only [database name ] > table.dump

于 2014-03-17T20:49:12.510 回答
1

看看 taps ( ) ,我相信这个已回答的问题db:pull涵盖了您的用例。

于 2013-04-03T05:47:58.817 回答