diff --git a/3m/cron.sh b/3m/cron.sh index 09ea0d9..f5f20e3 100755 --- a/3m/cron.sh +++ b/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