File: //usr/local/sbin/hostingplatform-db
#!/bin/bash
case $1 in
init)
[ -f /var/local/hostingplatform/db.sqlite ] || \
sqlite3 /var/local/hostingplatform/db.sqlite \
< /usr/local/share/hostingplatform/schema.sql
for migration in $(echo /usr/local/share/hostingplatform/migration-*.sql)
do
done_file=/var/local/hostingplatform/$(basename $migration).done
[ -f $done_file ] || \
sqlite3 /var/local/hostingplatform/db.sqlite < $migration && \
touch $done_file
done
;;
diffschema)
shift
while getopts w o
do
case $o in
w)
WARN=1
;;
esac
done
sqlite3 /var/local/hostingplatform/db.sqlite .schema \
| tr -d '\n' \
| sed 's/;/;\n/g' \
| sort \
> /var/local/hostingplatform/db.sqlite.schema.sql
tr -d '\n' \
< /usr/local/share/hostingplatform/schema.sql \
| sed 's/;/;\n/g' \
| sort \
> /var/local/hostingplatform/schema.sql
diff -wBNau0 \
/var/local/hostingplatform/db.sqlite.schema.sql \
/var/local/hostingplatform/schema.sql \
2>&1 >/dev/null
DIFF=$?
rm -f \
/var/local/hostingplatform/db.sqlite.schema.sql \
/var/local/hostingplatform/schema.sql
if [ ! $DIFF -eq 0 ]; then
if [ $WARN ]; then
echo "!!!!"
echo "!!!! WARNING"
echo "!!!! hostingplatform schema differs from distributed schema!"
echo "!!!!"
else
sqlite3 /var/local/hostingplatform/db.sqlite .schema | \
diff -Nau - /usr/local/share/hostingplatform/schema.sql
fi
fi
exit 0
;;
esac