2017-01-24 4 views
2

私のatmの少しの利便性の問題について不思議です。Postgresql - xテーブルを使用したデータベースのダンプ - スキーマのみですが、1つのテーブルのデータ

私はテーブルの可変量のデータベースを持っていると私はそのデータベースのダンプが、テーブルの構造と1つの特定のテーブルのデータだけをダンプしたい。

もちろん、基本的には可能ですが、コマンドがかなり長くなり、すべてのテーブルを知る必要があります。

しかし、私は名前や他のテーブルの数を知らずにコマンドが必要になります。データが必要なものだけが必要です。他のテーブルは基本的にちょうど牛です。 1つのファイルにすべてがあります。

私の問題を解決する方法については、いくつかの提案や多少の参考になることを楽しみにしています。あなただけそれらを連結することができますので、本当に好奇心:)

答えて

2

デフォルトpg_dump出力フォーマットは、psqlスクリプトです:

pg_dump -d my_db --schema-only > dump.sql 
pg_dump -d my_db -t my_table --data-only >> dump.sql 
+0

真、それはかなり明白なソリューションです。とにかくおかげで、主に私はより精巧なソリューションを介してpostgresqlでいくつかの経験を得るために探しています。しかしもちろん、私はまた、私の問題に対する短くて簡単な解決策を探しています。連結はうまく動作しますが、1ライナーが好きです。) – Samarek

+0

@Doeyo: '{pg_dump ...;}で1行に詰め込むことができます。 pg_dump ...}> dump.sql' ... Postgresは 'pg_dump'以外のデータベース構造をエクスポートする方法を提供しておらず、' --schema-only'と '--data-only'オプションは相互に排他的なので、私はこれが得られるほど簡単だと思います。 –

+0

しかし、あなた自身のために「精巧」なものが欲しいなら、恐ろしいクルージュがいくつかあります...あなたは[あなたの望む出力に合った一時的なデータベースを構築する]ことができます(http://pastebin.com/5vw9708c)。または[行のセキュリティポリシーによる他のテーブルのダンプを抑制する](http://pastebin.com/EpAD820t)。実際に気にしているシステムでこれらのいずれかを実行しないでください:) –

関連する問題