#!/usr/bin/env bash set -xe # Change to root directory of the checkout that we're running from cd "$(dirname "$0")/../.." python manage.py checkconfig python manage.py migrate --noinput python manage.py createcachetable third_party_api_results if ! python manage.py initialize_voyager_db; then set +x echo echo -e "\033[32mPopulating default database failed." echo "After you fix the problem, you will need to do the following before rerunning this:" echo " * supervisorctl stop all # to stop all services that might be accessing the database" echo " * scripts/setup/postgres-init-db # run as root to drop and re-create the database" echo -e "\033[0m" set -x exit 1 fi # Check if the supervisor socket exists. If not, it could be: # # A) A normal installation went bad (supervisor hasn't started) # B) We are in a Docker container and don't have supervisor running # # In either case, it doesn't make sense to restart supervisor jobs if [ -e "/var/run/supervisor.sock" ]; then supervisorctl restart all fi set +x echo "Congratulations! You have successfully configured your Zulip database." echo "If you haven't already, you should configure email in /etc/zulip/settings.py." echo "Then create your organization and user by opening the link to your Zulip" echo "instance generated by ./manage.py generate_realm_creation_link." echo "" echo "See docs/prod-health-check-debug.md for instructions on how to confirm your Zulip " echo "install is healthy, change your realm's domain, debug common issues, and otherwise " echo "finish setting things up." set -x