PostgreSQLでDB間またはスキーマー間でpd_dumpを使ってコピーを試みたものの、うまくいきませんでした。
調べているとやり方はあるらしいですが、結局手間がかかり\copyの方が早いらしいのでこれで試してみました。
環境
PostgreSQL 9.4
CentOS 6
Mac 11
コピーの流れ
「コピー元DB:A、コピー先DB:B」とします。
1.AでCSVエクスポート
2.Bでデータ削除
3.BでCSVインポート
4.Bでシーケンス初期化
各項番の説明をしていきます。
1.AでCSVエクスポート
ターミナルで次を実行します。
# 通常接続 psql -h Aのホスト -U Aのユーザー名 -d AのDB名 -c"\copy テーブル名 to '/出力先フルパス/テーブル名.csv' (format csv, delimiter ',', header true);"# SSL接続 psql "sslmode=require host=Aのホスト user=Aのユーザー名 dbname=AのDB名"-c"\copy テーブル名 to '/出力先フルパス/テーブル名.csv' (format csv, delimiter ',', header true);"
3.BでCSVインポート
エクスポートの「to」を「from」に変えるだけです。
ターミナルで次を実行します。
# 通常接続 psql -h Bのホスト -U Bのユーザー名 -d BのDB名 -c"\copy テーブル名 from '/出力先フルパス/テーブル名.csv' (format csv, delimiter ',', header true);"# SSL接続 psql "sslmode=require host=Bのホスト user=Bのユーザー名 dbname=BのDB名"-c"\copy テーブル名 from '/出力先フルパス/テーブル名.csv' (format csv, delimiter ',', header true);"
超絶おすすめするPostgreSQL書籍!!
![[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus) [改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)](http://images-fe.ssl-images-amazon.com/images/I/51G-Ui96m4L._SL160_.jpg)
[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)
- 作者:勝俣智成,佐伯昌樹,原田登志
- 出版社/メーカー:技術評論社
- 発売日: 2018/09/14
- メディア:単行本(ソフトカバー)
- この商品を含むブログを見る

- 作者:鈴木啓修
- 出版社/メーカー:技術評論社
- 発売日: 2012/11/16
- メディア:単行本(ソフトカバー)
- 購入: 2人 クリック: 14回
- この商品を含むブログ (5件) を見る