# Semana 6: el modelo entidad-relación y su traducción a tablas.
# Se usa dentro del contenedor del curso.
#
#   make          crea la base de datos chasqui_w06 con los datos de ejemplo
#                 y le agrega los esquemas library (biblioteca), isa_levels,
#                 isa_leaves, isa_single y university (E-R extendido)
#   make test     la vuelve a crear, corre los ejemplos (*.sql) y las
#                 pruebas (*.test.mjs)
#   make clean    borra chasqui_w06

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

.PHONY: all test clean

all:
	chasqui-load $(DB)
	$(PSQL) -f library.sql -f extended.sql

# Las demostraciones fallan a propósito sentencia por sentencia, así que no
# llevan ON_ERROR_STOP; terminan en ROLLBACK. Los archivos de pruebas corren
# uno tras otro (--test-concurrency=1): varias pruebas cambian datos dentro
# de una transacción y otras cuentan filas.
test: all
	$(PSQL) -o /dev/null -f queries.sql
	psql -X -q -d $(DB) -o /dev/null -f library-demo.sql -f extended-demo.sql > /dev/null 2>&1
	PGDATABASE=$(DB) node --test --test-concurrency=1 --test-reporter=spec

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