それを一つのSQLファイルにダンプする事はpg_dumpでそのまま可能なんですけど、1テーブル1SQLファイルにしたかったので、こんなワンライナーでやったという話です。
$ pg_dump -d -O -c baby_goods | ¥
grep 'CREATE TABLE' | ¥
perl -pe 's/CREATE TABLE (.+) \(/pg_dump -d -O -c --table=$1 baby_goods \> $1\.sql/' > ¥
create_table_list.sh
create_table_list.shで中身を確認して実行。
というわけです。
ほんとはcreate_table_list.shなんて作りたくなくて、
pg_dump -d -O -c --table=TABLE_NAME baby_goods > TABLE_NAME.sql
この部分をそのまま実行するってどうやればいいのかわからなくてファイルに書き出したというわけです。
んー、出来そうな気がするんだけどなー。
[追記:2008/02/25 22:55]
なんと、| shだけでよかったのか!
$ pg_dump -d -O -c baby_goods | ¥
grep 'CREATE TABLE' | ¥
perl -pe 's/CREATE TABLE (.+) \(/pg_dump -d -O -c --table=$1 baby_goods \> $1\.sql/' | sh
でよかったというわけですね。
[Linux]シェルを覚えた経緯を詳し目に書いてみるが参考になりました!
0 件のコメント:
コメントを投稿