#!/bin/bash -e function migration_status { ./manage.py migrate --list --settings=zproject.test_settings | sed 's/*/ /' > "$1" } template_grep_error_code=$(echo "SELECT 1 from pg_database WHERE datname='zulip_test_template';" | python manage.py dbshell --settings=zproject.test_settings | grep -q "1 row"; echo $?) if [ $template_grep_error_code == "0" ]; then migration_status zerver/fixtures/available-migrations if [ -e zerver/fixtures/migration-status ] && cmp -s zerver/fixtures/available-migrations zerver/fixtures/migration-status && [ "$1" != "--force" ]; then psql -h localhost postgres zulip_test << EOF DROP DATABASE IF EXISTS zulip_test; CREATE DATABASE zulip_test TEMPLATE zulip_test_template; EOF exit 0 fi fi mkdir -p zerver/fixtures psql -h localhost postgres zulip_test < zerver/fixtures/messages.json # create pristine template database, for fast fixture restoration after tests are run. psql -h localhost postgres zulip_test << EOF DROP DATABASE IF EXISTS zulip_test_template; CREATE DATABASE zulip_test_template TEMPLATE zulip_test; EOF