A script to update the update database from a dump file

- Legacy-Id: 339
This commit is contained in:
Henrik Levkowetz 2007-06-12 18:05:46 +00:00
parent 6fe5717a1f
commit 8deca3446e

47
test/update-db Executable file
View file

@ -0,0 +1,47 @@
#!/bin/bash
# push in a new copy of the database from a dump of the master database, and
# do the fixups needed to run the django apps.
#set -x
program=${0##*/}
progdir=${0%/*}
cd $progdir/..
build=$PWD
function log() { logger -i -t $program -s "$*"; }
function die() { log "$*; terminating."; echo "$program: Error: $*" 1>&2; exit 1; }
[ $DBDUMP ] || DBDUMP=/www/tools.ietf.org/events/raw/sqldump/sqldump.raw
[ $DBFIX ] || DBFIX=$build/test/sql_fixup.sql
LOCKDIR=/var/lock/ietfdb
PIDFILE=$LOCKDIR/pid
while true; do
if mkdir $LOCKDIR; then
echo "$$" > $PIDFILE
log "Updating local database from $DBDUMP ..."
python ietf/manage.py dbshell < $DBDUMP
log "Updating local database from $DBFIX ..."
python ietf/manage.py dbshell < $DBFIX
log "Running Django syncdb ..."
python ietf/manage.py syncdb
log "Done."
rm -rf $LOCKDIR
exit 0
else
pid=$(< $PIDFILE ) || die "Couldn't read pidfile '$PIDFILE'"
if kill -0 $pid; then
log "Pidfile for process $pid exists, and process is running. Sleeping."
sleep 10
else
log "Pidfile for process $pid exists, but process isn't running."
log "Removing lock and old pid file $pidfile."
rm -rf $LOCKDIR
fi
fi
done