# This script is meant to be run with `source` so it can set environment variables. export PGDATA="$PWD/dev_pgdata" export PGHOST=$PWD # Necessary to encode the dev db path into proper URL params export ENCODED_HOST=$(printf $PWD | jq -sRr @uri) export PGUSER=postgres export DATABASE_URL="postgresql://lemmy:password@$ENCODED_HOST/lemmy" export LEMMY_DATABASE_URL=$DATABASE_URL export PGDATABASE=lemmy # If cluster exists, stop the server and delete the cluster if [[ -d $PGDATA ]] then # Only stop server if it is running pg_status_exit_code=0 (pg_ctl status > /dev/null) || pg_status_exit_code=$? if [[ ${pg_status_exit_code} -ne 3 ]] then pg_ctl stop --silent fi rm -rf $PGDATA fi config_args=( # Only listen to socket in current directory -c listen_addresses= -c unix_socket_directories=$PWD # Write logs to a file in $PGDATA/log -c logging_collector=on # Allow auto_explain to be turned on -c session_preload_libraries=auto_explain # Include actual row amounts and run times for query plan nodes -c auto_explain.log_analyze=on # Don't log parameter values -c auto_explain.log_parameter_max_length=0 ) # Create cluster pg_ctl init --silent --options="--username=postgres --auth=trust --no-instructions" # Start server pg_ctl start --silent --options="${config_args[*]}" # Setup database PGDATABASE=postgres psql --quiet -c "CREATE USER lemmy WITH PASSWORD 'password' SUPERUSER;" PGDATABASE=postgres psql --quiet -c "CREATE DATABASE lemmy WITH OWNER lemmy;"