# Semana 4: joins, vistas, restricciones de integridad y autorización.
# Se usa dentro del contenedor del curso.
#
#   make          crea la base de datos chasqui_w04 con los datos de ejemplo,
#                 las vistas (views.sql) y el esquema demo (demo.sql)
#   make test     la vuelve a crear, corre los ejemplos (*.sql) y las
#                 pruebas (*.test.mjs)
#   make clean    borra chasqui_w04

DB   = chasqui_w04
PSQL = psql -X -q -v ON_ERROR_STOP=1 -d $(DB)

.PHONY: all test clean

all:
	chasqui-load $(DB)
	$(PSQL) -f views.sql -f demo.sql

# Los archivos de pruebas corren uno tras otro (--test-concurrency=1):
# varias pruebas hacen ALTER TABLE dentro de una transacción, y en paralelo
# se bloquearían entre sí.
test: all
	$(PSQL) -o /dev/null -f joins.sql -f types.sql
	PGDATABASE=$(DB) node --test --test-concurrency=1 --test-reporter=spec

clean:
	dropdb --if-exists $(DB)
