3m: minimize downtime when updating bi database
This commit is contained in:
parent
d8de03a580
commit
3301318cef
16
3m/cron.sh
16
3m/cron.sh
|
@ -5,17 +5,23 @@ set -x -e
|
|||
cd ~/publik-bi/3m/
|
||||
export PLATFORM=${PLATFORM:-prod}
|
||||
DB=auquotidien-bi
|
||||
TEMPDB=$DB-temp
|
||||
|
||||
TEMP_DUMP=`tempfile`
|
||||
trap "rm -f $TEMP_DUMP" INT TERM EXIT
|
||||
|
||||
/sbin/start-stop-daemon --stop --pidfile slicer-$PLATFORM.pid --oknodo --retry 5
|
||||
dropdb $DB
|
||||
createdb $DB
|
||||
dropdb $TEMPDB || true
|
||||
createdb $TEMPDB
|
||||
pg_dump -Oc auquotidien >$TEMP_DUMP
|
||||
psql $DB -f $TEMP_DUMP
|
||||
psql $DB -f 3m_$PLATFORM.sql
|
||||
psql $TEMPDB -f $TEMP_DUMP
|
||||
psql $TEMPDB -f 3m_$PLATFORM.sql
|
||||
|
||||
# minimize downtime
|
||||
/sbin/start-stop-daemon --stop --pidfile slicer-$PLATFORM.pid --oknodo --retry 5
|
||||
psql -c "ALTER DATABASE \"$DB\" RENAME TO \"$DB-old\"" auquotidien
|
||||
psql -c "ALTER DATABASE \"$TEMPDB\" RENAME TO \"$DB\"" auquotidien
|
||||
/sbin/start-stop-daemon --start --background --make-pidfile \
|
||||
--pidfile slicer-$PLATFORM.pid --oknodo --startas ./run-slicer.sh \
|
||||
--chdir .
|
||||
|
||||
dropdb $DB-old
|
||||
|
|
Reference in New Issue