zulip/scripts/setup/postgres-init-db

34 lines
822 B
Bash
Executable File

#!/bin/bash
set -e
set -x
# Shut down all services to ensure a quiescent state.
supervisorctl stop all
# Drop any open connections to any old database. Hackishly call using
# source because postgres user can't read /root/zulip/scripts/setup.
source "$(dirname "$0")/terminate-psql-sessions" postgres zulip zulip_base
(
# Make sure the current working directory is readable by postgres
cd /
su postgres -c psql <<EOF
CREATE USER zulip;
ALTER ROLE zulip SET search_path TO zulip,public;
DROP DATABASE IF EXISTS zulip;
CREATE DATABASE zulip OWNER=zulip;
EOF
su postgres -c 'psql zulip' <<EOF
CREATE SCHEMA zulip AUTHORIZATION zulip;
CREATE EXTENSION tsearch_extras SCHEMA zulip;
EOF
)
# Clear memcached to avoid contamination from previous database state
sh "$(dirname "$0")/flush-memcached"
echo "Database created"