teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/12/27 00:28

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,3 +1,17 @@
1
1
  リストア時にdatabaseも作成するなら、pg_restoreだけでなくpg_dump時点で-Cオプションが必要です。
2
+ pg_restoreの-Cオプションは、ダンプファイル内のCreate Databaseコマンドを実行するかどうかのオプションであり、元となるコマンドはpg_dumpの際に出力されていなければなりません。
3
+ ※-cオプションも付けておいた方が無難だと思います。
2
4
  [pg_dump](https://www.postgresql.jp/document/11/html/app-pgdump.html)
3
- -cオプションも付けておいた方が無難だと思います。
5
+ > -c
6
+ > --clean
7
+ > データベースオブジェクトを作成するコマンドの前に、データベースオブジェクトを整理(削除)するコマンドを書き出します。 (--if-existsも指定されなければ、リストア先のデータベースの中に存在しないオブジェクトがある場合に、害がないエラーがいくつか発生するかもしれません。)
8
+ >
9
+ > このオプションは平文形式の場合にのみ有効です。 アーカイブ形式では、pg_restoreを呼び出す時にこのオプションを指定することができます。
10
+ >
11
+ > -C
12
+ > --create
13
+ > 初めにデータベース自体を作成するコマンドを出力し、その後、作成したデータベースに接続するコマンドを出力します (このようなスクリプトを使用すると、スクリプトを実行する前に対象のインストレーションの中のどのデータベースに接続すればよいかという問題を考える必要がなくなります)。 --cleanも同時に指定されている場合、このスクリプトは接続する前に対象データベースを削除し再作成します。
14
+ >
15
+ > --createでは出力に、もしあるならデータベースのコメントも含まれます。また、あらゆる設定変数の設定、すなわち、このデーベースを対象としているALTER DATABASE ... SET ...とALTER ROLE ... IN DATABASE ... SET ...コマンドも含まれます。 --no-aclが指定されていない限り、データベースに対するアクセス権限自体もダンプされます。
16
+ >
17
+ > このオプションは平文形式の場合にのみ有効です。 アーカイブ形式では、pg_restoreを呼び出す時にこのオプションを指定することができます。

1

更新

2021/12/27 00:28

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,3 +1,3 @@
1
1
  リストア時にdatabaseも作成するなら、pg_restoreだけでなくpg_dump時点で-Cオプションが必要です。
2
- [pg_dump](https://www.postgresql.jp/document/13/html/app-pgdump.html)
2
+ [pg_dump](https://www.postgresql.jp/document/11/html/app-pgdump.html)
3
3
  ※-cオプションも付けておいた方が無難だと思います。