我可以使用 pg:transfer 将我的数据库从本地机器推送到我的 heroku 应用程序,如下所示:
heroku pg:transfer --from postgres://localhost/idx_map_development --to aqua
但是我不想上传整个数据库,我只想上传属性表,这可以使用 pg:transfer 吗?如果是这样,上面的行看起来如何?
我可以使用 pg:transfer 将我的数据库从本地机器推送到我的 heroku 应用程序,如下所示:
heroku pg:transfer --from postgres://localhost/idx_map_development --to aqua
但是我不想上传整个数据库,我只想上传属性表,这可以使用 pg:transfer 吗?如果是这样,上面的行看起来如何?
用 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 db 上的其他表不受影响。您无需在pgbackups:restore
命令中指定属性表。
正如@eugjill 所提到的,这不再起作用了。所以首先你做转储,如@railsy所述:
pg_dump -Fc --no-acl --no-owner -h localhost -U username -t properties idx_map_development > properties.dump
然后不要使用 pgbackups,而是使用 pg_restore:
PGPASSWORD=<PASSWORD> pg_restore --verbose --no-acl --no-owner -h <HOST> -U <USER> -d <DATABASE> -p <PORT> properties.dump
上面的 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
像宣传的那样工作。