pg_dump: テーブル構造のみ・データのみ出力


pg_dump でエクスポートする場合、 -s , -a のオプションをつけることで挙動が多少変わる。 -s, -a オプションは次のような場合に使われる。

スキーマ・データを別にエクスポートする

スキーマ情報のみをエクスポートする

別のデータベースに似たような構造を作りたい場合などに使える。

もし全てのテーブルのスキーマをエクスポートしたい場合は、 オプション -t TABLE_NAME を除いて実行します。

データのみをエクスポートする

コマンドは変更される可能性もあるので、最新のものは PostgreSQL のドキュメントで確認してください。

エクスポートしたものをインポートするには -f file_name をつけて psql を実行する。

私はこのコマンドを、カラムを追加する場合に使っている。

カラムの追加

PostgreSQL だと既存のカラムの最後にしかカラムを追加できない。 MySQL だと 特定のカラムの後ろに新しいカラムを追加することができる。

そこで私は次のようにして列を追加することがある。

  1. テーブルスキーマとテーブルデータをエクスポートする。 (データとスキーマをまとめてエクスポートしてもいい。)

  2. テーブルスキーマを変更する、テーブル削除のSQLを追加する

  3. 念のためバックアップを取得する

  4. テーブルを変更する