2011-01-18 5 views
4

現在、ツールpg_dumpを使用して、データベースからテーブルをダンプしています。私はこのプロセスを自動化したいと思いますが、同じ接頭辞を持つ複数のデータベースをダンプするpg_dumpを指定する方法が見つかりませんでした。特定のプレフィックスを持つpsqlテーブルのダンプ

この問題ですべてのヘルプは大幅に私はundstand場合は、正確に何を言っていることはよく分からない

答えて

4

例:

employee_logという名前のテーブルのための 除いて、名前デトロイトスキーマにEMPと を開始するすべてのテーブルをダンプする:

$ pg_dumpの-T「detroit.emp *」-T detroit.employee_log MYDB> db.sql

名開始 GSMで東か西の端を持つすべてのスキーマをダンプするには、 exclu鼎その単語のテストが含まれている 名の任意のスキーマ: '*西GSM' -N 'テスト' MYDB> -n

$ pg_dumpの-n 'イースト* GSM'

db.sql同じ、正規表現のスイッチを統合する 記法使用:

$ pg_dumpは-n '(東|西)* GSM' すべてのデータベースをダンプするには

db.sql -N 'テスト' MYDB>を名前TS_で始まるテーブル用 除くオブジェクト:

$ pg_dumpの-T 'TS_ *' MYDB> db.sql

+0

ありがとう、それは私が必要としていたものです。それはマニュアルの一番下にありました。私は少しでも尊厳を失ってしまったのです。 – Redconnection

+0

テーブル!=データベースなので、これは与えられた質問の正解ではありません –

+0

@ childno.de:正解は何ですか? –

0

をいただければ幸いです。シェルスクリプトを編集して各データベースをダンプできることをお勧めします。 manualから

+0

データベースには多数のテーブルがあります。テーブルの各サブセットにはプレフィックスがあります。敵の例moscow_paris_ newyork_これらのサブコマンドを1つのコマンドでダンプしたいと思います。 – Redconnection

0

あなたがより多くのダンプしたい場合は、複数回の "-t" パラメータを使用することができます1つのテーブルよりも。

$ pg_dumpの-t TABLE1 -t table2のMYDB> dump.sql

-tテーブル --table =表

Dump only tables (or views or sequences) matching table. Multiple 

テーブルは 複数-tスイッチを書き込むことによって選択することができます。

関連する問題