zulip/scripts/setup/initialize-database

44 lines
1.6 KiB
Bash
Executable File

#!/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