FIX: `sed` on OSX sucks and doesn't work with the same commands as on
most Linux machines. This regexp is compatible with both.
This commit is contained in:
parent
e8c53d171a
commit
c1b4f5b80b
|
@ -199,19 +199,19 @@ module Export
|
||||||
# - create the "restore" schema
|
# - create the "restore" schema
|
||||||
# - prepend the "restore" schema into the search_path
|
# - prepend the "restore" schema into the search_path
|
||||||
|
|
||||||
regexp = "^SET search_path = public, pg_catalog;$"
|
regexp = "SET search_path = public, pg_catalog;"
|
||||||
|
|
||||||
replacement = [ "DROP SCHEMA IF EXISTS restore CASCADE;",
|
replacement = [ "DROP SCHEMA IF EXISTS restore CASCADE;",
|
||||||
"CREATE SCHEMA restore;",
|
"CREATE SCHEMA restore;",
|
||||||
"SET search_path = restore, public, pg_catalog;",
|
"SET search_path = restore, public, pg_catalog;",
|
||||||
].join("\\n")
|
].join(" ")
|
||||||
|
|
||||||
# we only want to replace the VERY first occurence of the search_path command
|
# we only want to replace the VERY first occurence of the search_path command
|
||||||
expression = "0,/#{regexp}/s//#{replacement}/"
|
expression = "1,/^#{regexp}$/s/#{regexp}/#{replacement}/"
|
||||||
|
|
||||||
# I tried to use the --in-place argument but it was SLOOOWWWWwwwwww
|
# I tried to use the --in-place argument but it was SLOOOWWWWwwwwww
|
||||||
# so I output the result into another file and rename it back afterwards
|
# so I output the result into another file and rename it back afterwards
|
||||||
[ "sed --expression='#{expression}' < #{@dump_filename} > #{@dump_filename}.tmp",
|
[ "sed -e '#{expression}' < #{@dump_filename} > #{@dump_filename}.tmp",
|
||||||
"&&",
|
"&&",
|
||||||
"mv #{@dump_filename}.tmp #{@dump_filename}",
|
"mv #{@dump_filename}.tmp #{@dump_filename}",
|
||||||
].join(" ")
|
].join(" ")
|
||||||
|
|
Loading…
Reference in New Issue