61 lines
2.2 KiB
Makefile
61 lines
2.2 KiB
Makefile
|
|
# Dependencies: pg-loader, postgres client tools
|
|
|
|
install-tools-macos:
|
|
brew install pgloader
|
|
brew install libpq
|
|
|
|
install-tools-linux:
|
|
sudo apt install pgloader
|
|
sudo apt install postgresql-client
|
|
|
|
run-docker:
|
|
docker run -d --rm --name postgres -e POSTGRES_USER=user -e POSTGRES_PASSWORD=pass -p 6432:6432 postgres:alpine
|
|
|
|
# Max performance for unit tests.
|
|
run-docker-unit-test-only:
|
|
docker run -d --rm --name postgres -e POSTGRES_USER=user -e POSTGRES_PASSWORD=pass \
|
|
--tmpfs /var/lib/postgresql/data:rw,noexec,nosuid,size=2G \
|
|
-p 6432:6432 postgres:alpine \
|
|
-c fsync=off \
|
|
-c synchronous_commit=off \
|
|
-c full_page_writes=off \
|
|
-c wal_level=minimal \
|
|
-c max_wal_senders=0 \
|
|
-c archive_mode=off \
|
|
-c shared_buffers=256MB \
|
|
-c max_wal_size=512MB \
|
|
-c checkpoint_timeout=30min \
|
|
-c logging_collector=off \
|
|
-c log_statement=none \
|
|
-c jit=off \
|
|
-c track_counts=off \
|
|
-c autovacuum=off
|
|
|
|
dump-db:
|
|
# 1. Convert `data.db` to `data.sqlite-dump.sql` and `data.pg-dump.sql`
|
|
sqlite3 data.db .dump > data.sqlite-dump.sql
|
|
-PGPASSWORD=pass dropdb -h 127.0.0.1 -U user pb-data
|
|
PGPASSWORD=pass createdb -h 127.0.0.1 -U user pb-data
|
|
-pgloader --with "preserve index names" sqlite://$$(pwd)/data.db pgsql://user:pass@127.0.0.1/pb-data
|
|
docker exec -it postgres pg_dump -U user -h 127.0.0.1 pb-data > data.pg-dump.sql
|
|
# 2. Convert `auxiliary.db` to `auxiliary.sqlite-dump.sql` and `auxiliary.pg-dump.sql`
|
|
sqlite3 auxiliary.db .dump > auxiliary.sqlite-dump.sql
|
|
-PGPASSWORD=pass dropdb -h 127.0.0.1 -U user pb-auxiliary
|
|
PGPASSWORD=pass createdb -h 127.0.0.1 -U user pb-auxiliary
|
|
-pgloader --with "preserve index names" sqlite://$$(pwd)/auxiliary.db pgsql://user:pass@127.0.0.1/pb-auxiliary
|
|
docker exec -it postgres pg_dump -U user -h 127.0.0.1 pb-auxiliary > auxiliary.pg-dump.sql
|
|
|
|
|
|
PREFIX=pb_test_
|
|
drop-matching-dbs:
|
|
@echo "Looking for databases starting with $(PREFIX)..."
|
|
@PGPASSWORD=pass psql -h 127.0.0.1 -U user -d postgres -t -c "SELECT datname FROM pg_database WHERE datname LIKE '$(PREFIX)%'" | \
|
|
while read dbname; do \
|
|
dbname=$$(echo $$dbname | xargs); \
|
|
if [ ! -z "$$dbname" ]; then \
|
|
echo "Dropping database: $$dbname"; \
|
|
PGPASSWORD=pass psql -h 127.0.0.1 -U user -d postgres -c "DROP DATABASE \"$$dbname\""; \
|
|
fi; \
|
|
done
|