使用heroku pg:transfer而不是整个数据库只上传一个表

时间:2013-06-04 00:52:32

标签: postgresql heroku

我可以将我的数据库从本地计算机推送到我的heroku应用程序,使用pg:transfer,如下所示:

heroku pg:transfer --from postgres://localhost/idx_map_development --to aqua

但是我不想上传整个数据库,我只想上传属性表,这可能是用pg:transfer吗?如果是这样,上面的那一行怎么样?

3 个答案:

答案 0 :(得分:13)

用pg_dump:

做到了

pg_dump -Fc --no-acl --no-owner -h localhost -U username -t properties idx_map_development > properties.dump

名为properties.dump的文件只获取属性表的数据,然后将文件上传到Amazon S3存储桶,然后将其推送到heroku:

heroku pgbackups:restore DATABASE 'https://s3.amazonaws.com/bucket_name/properties.dump'

我的heroku数据库上的其他表格不受影响。您无需在pgbackups:restore命令中指定属性表。

答案 1 :(得分:3)

正如@eugjill所提到的,这不再适用了。所以首先你要进行转储,如@railsy所述:

pg_dump -Fc --no-acl --no-owner -h localhost -U username -t properties idx_map_development > properties.dump

然后使用pg_restore:

而不是使用pgbackups
PGPASSWORD=<PASSWORD> pg_restore --verbose --no-acl --no-owner -h <HOST> -U <USER> -d <DATABASE> -p <PORT> properties.dump

答案 2 :(得分:0)

上面的pg_dump也适用于我;虽然我需要所有描述的选项。

我有两张桌子;用户表和事务表。

pg_dump -t transactions db/development > transactions_clobber.bak

当我从中恢复时;用户表丢失了。

pg_dump -Fc --no-acl --no-owner -t transactions db/development > transactions_works.bak

按宣传方式工作。