46 lines
977 B
Bash
Executable File
46 lines
977 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eux
|
|
|
|
readonly scratch=$(mktemp -d -t tmp.XXXXXXXXXX)
|
|
|
|
readonly socket=$scratch/socket
|
|
readonly data=$scratch/data
|
|
readonly dbname=hydra-update-dbix
|
|
|
|
function finish() {
|
|
set +e
|
|
pg_ctl -D "$data" \
|
|
-o "-F -h '' -k \"$socket\"" \
|
|
-w stop -m immediate
|
|
|
|
if [ -f "$data/postmaster.pid" ]; then
|
|
pg_ctl -D "$data" \
|
|
-o "-F -h '' -k \"$socket\"" \
|
|
-w kill TERM "$(cat "$data/postmaster.pid")"
|
|
fi
|
|
|
|
rm -rf "$scratch"
|
|
}
|
|
trap finish EXIT
|
|
|
|
set -e
|
|
|
|
mkdir -p "$socket"
|
|
initdb -D "$data"
|
|
|
|
pg_ctl -D "$data" \
|
|
-o "-F -h '' -k \"${socket}\"" \
|
|
-w start
|
|
|
|
createdb -h "$socket" "$dbname"
|
|
|
|
psql --host "$socket" \
|
|
--set ON_ERROR_STOP=1 \
|
|
--file ./hydra.sql \
|
|
"$dbname"
|
|
|
|
perl -I ../lib \
|
|
-MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:../lib \
|
|
update-dbix.pl "dbi:Pg:dbname=$dbname;host=$socket"
|