cmd/brew-postgresql-upgrade-database: fix initdb issues.
* Add `safe_system` to `initdb` call to catch errors If the `initdb` step fails (which it can if the options passed are invalid), then the script will continue having marked `initdb_run` as `true`. This causes the script to continue to `pg_upgrade` step which will fail, ultimately triggering the `ensure` block. Since `initdb_run` is `true`, the script tries to remove `datadir` which we don't want since that step failed. The change here adds `safe_system` to ensure if the `initdb` step fails, it correctly bails out. * Add -X to `psql` call to ignore `.psqlrc` files Customizations in `.psqlrc` files can make the output of `psql` unpredictable, which can break parsing of the command's output. Using -X causes `psql` to ignore any such files and use the default output behavior, which can be parsed with consistency.master
parent
2986937737
commit
02df2994aa
|
@ -64,8 +64,8 @@ begin
|
||||||
|
|
||||||
sql_for_lc_collate = "SELECT setting FROM pg_settings WHERE name LIKE 'lc_collate';"
|
sql_for_lc_collate = "SELECT setting FROM pg_settings WHERE name LIKE 'lc_collate';"
|
||||||
sql_for_lc_ctype = "SELECT setting FROM pg_settings WHERE name LIKE 'lc_ctype';"
|
sql_for_lc_ctype = "SELECT setting FROM pg_settings WHERE name LIKE 'lc_ctype';"
|
||||||
lc_collate = Utils.popen_read("#{old_bin}/psql", "postgres", "-qtAc", sql_for_lc_collate).strip
|
lc_collate = Utils.popen_read("#{old_bin}/psql", "postgres", "-qtAX", "-U", ENV["USER"], "-c", sql_for_lc_collate)
|
||||||
lc_ctype = Utils.popen_read("#{old_bin}/psql", "postgres", "-qtAc", sql_for_lc_ctype).strip
|
lc_ctype = Utils.popen_read("#{old_bin}/psql", "postgres", "-qtAX", "-U", ENV["USER"], "-c", sql_for_lc_ctype)
|
||||||
initdb_args = []
|
initdb_args = []
|
||||||
initdb_args += ["--lc-collate", lc_collate] unless lc_collate.empty?
|
initdb_args += ["--lc-collate", lc_collate] unless lc_collate.empty?
|
||||||
initdb_args += ["--lc-ctype", lc_ctype] unless lc_ctype.empty?
|
initdb_args += ["--lc-ctype", lc_ctype] unless lc_ctype.empty?
|
||||||
|
@ -79,7 +79,7 @@ begin
|
||||||
moved_data = true
|
moved_data = true
|
||||||
|
|
||||||
(var/"postgres").mkpath
|
(var/"postgres").mkpath
|
||||||
system "#{bin}/initdb", *initdb_args, "#{var}/postgres"
|
safe_system "#{bin}/initdb", *initdb_args, "#{var}/postgres"
|
||||||
initdb_run = true
|
initdb_run = true
|
||||||
|
|
||||||
(var/"log").cd do
|
(var/"log").cd do
|
||||||
|
|
Loading…
Reference in New Issue