zulip/tools/postgres-init-db
acrefoot 94c61f5507 [manual] Humbug testing databases now backed by postgres
Currently our test database is backed by sqlite; this commit moves
us to using postgres for our all database needs. This, in conjunction
with the patched django on github, allow us to have fewer hacks and
more true-to-life tests. It also sets the stage for testing the bulk_create
and schema search_path patches made to django.

Developers will need to run:
./tools/postgres-init-test-db
./tools/do-destroy-rebuild-test-database

this is assuming that they have already run:
./tools/postgres-init-db
./tools/do-destroy-rebuild-database

at some point on this pg_cluster. (The ordering is important; it will other-
wise complain about the south_migration table).

(imported from commit c56c6f27e13df7ae10b2e643e65d669dde61af3d)
2013-05-20 23:55:03 -04:00

40 lines
875 B
Plaintext
Executable File

#/bin/sh -xe
if [[ $# == 0 ]]; then
USERNAME=humbug
PASSWORD=xxxxxxxxxxxx
DBNAME=humbug
SEARCH_PATH="$USERNAME",public
elif [[ $# == 4 ]]; then
USERNAME=$1
PASSWORD=$2
DBNAME=$3
SEARCH_PATH=$4
else
echo "Usage Instructions"
echo "Run with either no arguments (sets up devel db for local deploy--humbug with user humbug)"
echo "or specify <db-username> <password> <db-name> <user-schema-search-path>"
exit
fi
sudo -u postgres psql << EOF
CREATE USER $USERNAME WITH PASSWORD '$PASSWORD';
ALTER USER $USERNAME CREATEDB;
ALTER ROLE $USERNAME SET search_path TO $SEARCH_PATH;
EOF
umask go-rw
echo "*:*:*:$USERNAME:$PASSWORD" >> ~/.pgpass
chmod go-rw ~/.pgpass
psql -h localhost postgres $USERNAME <<EOF
CREATE DATABASE $DBNAME;
EOF
sudo -u postgres psql $DBNAME << EOF
DROP SCHEMA public CASCADE;
EOF
echo "Database created"