2013-06-04 53 views
8

我能夠從我的本地機器把我的數據庫,我的Heroku應用程序與PG:傳遞這樣的:上傳僅使用Heroku的一個表PG:轉移,而不是整個數據庫

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

但我不想上傳整個數據庫,我只想上傳屬性表,這是否可以使用pg:transfer?如果是這樣,上面的線看起來如何?

回答

13

與pg_dump的做到了:

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

稱爲properties.dump文件僅獲取數據的屬性表,我將文件上傳到亞馬遜S3存儲,然後可以用它推到Heroku的這樣的:

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

我的Heroku數據庫的其它表不會受到影響。您不需要在pgbackups:restore命令中指定屬性表。

+8

只是,我不知道這工作了警告。當我嘗試它時,它會清除整個分貝。從heroku文檔: _不像以前的pgbackups命令,您不能將部分備份恢復到現有數據庫中。當您運行pg:備份還原時,在還原備份之前,所有數據都將從目標數據庫中刪除。[] [heroku文檔](https://devcenter.heroku.com/articles/heroku-postgres-backups#restoring-backups ) – eugmill

+0

你能否更新此答案以反映上述評論中引用的新pg:備份行爲? – rguerrettaz

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 

按照廣告方式工作。

3

正如@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 
相關問題