我可以将我的数据库从本地计算机推送到我的heroku应用程序,使用pg:transfer,如下所示:
heroku pg:transfer --from postgres://localhost/idx_map_development --to aqua
但是我不想上传整个数据库,我只想上传属性表,这可能是用pg:transfer吗?如果是这样,上面的那一行怎么样?
答案 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:
而不是使用pgbackupsPGPASSWORD=<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
按宣传方式工作。