私が欲しいもの:
データベースの pg_dump が必要です (データベースを「test」と呼びましょう)。この pg_dump では、データ、トリガー、関数、シーケンスなどを含まないテーブルのみが必要です。
欲しいものを手に入れるために私がしていること:
私が実行するコマンドは次のとおりです:
pg_dump -U postgres -s test > dump_test.sql
私が観察していること:
次に、次のように別のサーバーでこのダンプを復元しようとすると:
pg_dump -U postgres new_amazing_test < dump_test.sql
上記のコマンドを実行した出力の一部に、次のように表示されていることに気付きました。
CREATE TRIGGER
CREATE FUNCTION
CREATE SEQUENCE
CREATE INDEX
私が実際
に欲しいのは、これらのトリガー、関数、シーケンス、およびインデックスではなく、テーブル自体だけです。テーブルのみを取得するにはどうすればよいですか?
私が試した/検討した他のこと:
私はこれをやってみました:
pg_dump -U postgres -s -schema=\dtmvE test > dump_test.sql
しかし、パターンは \d パターンではなく名前である必要があるため、うまくいきませんでした。オプションの詳細については、https
://www.postgresql.org/docs/13/app-pgdump.html を参照してください。-n pattern
それを解決するかもしれないことの 1 つは、次のように複数のスイッチを使用することです。
pgdump -t mytable1 -t mytable2 -t mytable3 ... -t mytableN > dump_test.sql
ただし、データベースに 70 以上のテーブルがあるため、上記の解決策は実用的ではありません。
その他の関連情報:
PostgreSQL のバージョンは 13.1
Ubuntu バージョン v16.04 です (Ubuntu v18.04 でもこれを試しました)