簡體   English   中英

從heroku下載部分數據庫

[英]Download partial database from heroku

我使用postgresql作為其數據庫在heroku上托管了一個ruby on rails應用程序。 由於數據庫變得越來越大,我想知道是否有一種方法只能從heroku下載它的特定部分。 例如,是否可以僅下載一個特定表,或僅下載parent_id == x的行。

使用DATABASE_URL配置設置,您可以使用pg_dump訪問數據庫並使用-t開關指定某個表。

例如,要將表my_table導出到名為db.sql文件中:

pg_dump -t my_table `heroku config:get DATABASE_URL` > db.sql

如果您需要將下載限制為某些行,那么我認為pg_dump不會自行完成任務。 您可以在Heroku數據庫中創建另一個表,首先定義要下載的行的子集,然后僅對該表執行pg_dump轉儲。 有關如何執行此操作的一些想法,請參閱此問題: 將PostgreSQL表中的特定行導出為INSERT SQL腳本

除了Steve的正確答案之外,您還可以選擇使用psql連接到DATABASE_URL並使用\\copy ,例如

$ psql "$(heroku config:get DATABASE_URL)"

mydb=> \copy mytable TO 'mytable.csv' WITH (FORMAT CSV, HEADER)

mydb=> \copy (SELECT col1, col2 FROM mytable2 WHERE ...) TO 'mytable2_partial.csv' WITH (FORMAT CSV, HEADER)

您可以提取整個表,或任意查詢的輸出(包括連接等)。 表定義(DDL)不以這種方式導出,但可以使用pg_dump --schema-only -t ...轉儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM