Automatically manage database when running scripts/test.sh (#3389)
* Update .gitignore * Create start-dev-db.sh * Rename start-dev-db.sh to start_dev_db.sh * Update .gitignore * Update start_dev_db.sh * Update start_dev_db.sh * Update start_dev_db.sh * Update start_dev_db.sh * h * Update test.sh * Update start_dev_db.sh * made it work * Make test.sh work when run from scripts dir
This commit is contained in:
parent
3159eedd99
commit
7d3894d5dd
3 changed files with 36 additions and 3 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -26,3 +26,7 @@ pictrs/
|
||||||
|
|
||||||
# The generated typescript bindings
|
# The generated typescript bindings
|
||||||
bindings
|
bindings
|
||||||
|
|
||||||
|
# Database cluster and sockets for testing
|
||||||
|
dev_pgdata/
|
||||||
|
*.PGSQL.*
|
||||||
|
|
24
scripts/start_dev_db.sh
Normal file
24
scripts/start_dev_db.sh
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# This script is meant to be run with `source` so it can set environment variables.
|
||||||
|
|
||||||
|
export PGDATA="$PWD/dev_pgdata"
|
||||||
|
export PGHOST=$PWD
|
||||||
|
export LEMMY_DATABASE_URL="postgresql://lemmy:password@/lemmy?host=$PWD"
|
||||||
|
|
||||||
|
# If cluster exists, stop the server and delete the cluster
|
||||||
|
if [ -d $PGDATA ]
|
||||||
|
then
|
||||||
|
# Prevent `stop` from failing if server already stopped
|
||||||
|
pg_ctl restart > /dev/null
|
||||||
|
pg_ctl stop
|
||||||
|
rm -rf $PGDATA
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create cluster
|
||||||
|
initdb --username=postgres --auth=trust --no-instructions
|
||||||
|
|
||||||
|
# Start server that only listens to socket in current directory
|
||||||
|
pg_ctl start --options="-c listen_addresses= -c unix_socket_directories=$PWD" > /dev/null
|
||||||
|
|
||||||
|
# Setup database
|
||||||
|
psql -c "CREATE USER lemmy WITH PASSWORD 'password' SUPERUSER;" -U postgres
|
||||||
|
psql -c "CREATE DATABASE lemmy WITH OWNER lemmy;" -U postgres
|
|
@ -1,13 +1,15 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
CWD="$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
|
||||||
|
|
||||||
|
cd $CWD/../
|
||||||
|
|
||||||
PACKAGE="$1"
|
PACKAGE="$1"
|
||||||
echo "$PACKAGE"
|
echo "$PACKAGE"
|
||||||
|
|
||||||
psql -U lemmy -d postgres -c "DROP DATABASE lemmy;"
|
source scripts/start_dev_db.sh
|
||||||
psql -U lemmy -d postgres -c "CREATE DATABASE lemmy;"
|
|
||||||
|
|
||||||
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
|
|
||||||
# tests are executed in working directory crates/api (or similar),
|
# tests are executed in working directory crates/api (or similar),
|
||||||
# so to load the config we need to traverse to the repo root
|
# so to load the config we need to traverse to the repo root
|
||||||
export LEMMY_CONFIG_LOCATION=../../config/config.hjson
|
export LEMMY_CONFIG_LOCATION=../../config/config.hjson
|
||||||
|
@ -21,3 +23,6 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add this to do printlns: -- --nocapture
|
# Add this to do printlns: -- --nocapture
|
||||||
|
|
||||||
|
pg_ctl stop
|
||||||
|
rm -rf $PGDATA
|
||||||
|
|
Loading…
Reference in a new issue