我在 Heroku 上使用 Postgres,需要从我的生产数据库中转储一个表并将其转储到我的暂存数据库中。我安装了 heroku 工具带,但不知道如何转储单个数据库表以导入我的暂存数据库。
问问题
10061 次
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
使用该文件,您可以使用对登台应用程序的新调用 psql
的Connection 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 回答