回答編集履歴

2

追記

2021/12/27 00:28

投稿

sazi
sazi

スコア25327

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

1

更新

2021/12/27 00:28

投稿

sazi
sazi

スコア25327

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