[英]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.