-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathMakefile
More file actions
55 lines (45 loc) · 2.21 KB
/
Makefile
File metadata and controls
55 lines (45 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
include .env
CONTAINER_ENGINE ?= $(shell command -v podman 2> /dev/null || echo docker)
COMPOSE_ENGINE ?= $(shell command -v podman-compose 2> /dev/null || echo docker-compose)
MY_ID ?= $(shell id -u)
CHANGE ?= New migration
.PHONY: server-up rebuild-server alembic-generate-revision
# rebuild server image (for compose) with new and updated dependencies
rebuild-server:
$(COMPOSE_ENGINE) -f docker-compose-dev.yaml build --no-cache server
server-up:
$(COMPOSE_ENGINE) -f docker-compose-dev.yaml up --build --force-recreate -d server
server-down:
$(COMPOSE_ENGINE) -f docker-compose-dev.yaml down
# WARNING: This target will start up a new server
# and shut it down when the operation completes
# run alembic revision in another pod
alembic-generate-revision: server-up
@echo "Waiting for server to start and invoking alembic upgrade head..."
scripts/await_psql
@echo "Checking if database is ready..."
$(CONTAINER_ENGINE) run --rm --network logdetective_default \
quay.io/sclorg/postgresql-15-c9s \
pg_isready -h postgres -U $(POSTGRESQL_USER) -d $(POSTGRESQL_DATABASE) \
|| (echo "Database not ready -h postgres -U $(POSTGRESQL_USER) -d $(POSTGRESQL_DATABASE)"; exit 1)
$(CONTAINER_ENGINE) run --rm -ti --user $(MY_ID) --uidmap=$(MY_ID):0:1 --uidmap=0:1:999 \
-e POSTGRESQL_USER=$(POSTGRESQL_USER) \
-e POSTGRESQL_PASSWORD=$(POSTGRESQL_PASSWORD) \
-e POSTGRESQL_HOST=postgres \
-e POSTGRESQL_DATABASE=$(POSTGRESQL_DATABASE) \
-v $(PWD)/alembic:/src/alembic:rw,z \
-v $(PWD)/alembic.ini:/src/alembic.ini:ro,z \
--network logdetective_default \
localhost/logdetective/server:latest \
bash -c "cd /src && python -m alembic revision -m \"$(CHANGE)\" --autogenerate"
@echo "WARNING: Shutting down server..."
$(COMPOSE_ENGINE) down server
# Download mermerd from:
# https://github.com/KarnerTh/mermerd/releases/download/v0.12.0/mermerd_0.12.0_linux_arm64.tar.gz
generate-db-diagram: server-up
scripts/await_psql
mermerd -c postgresql://$(POSTGRESQL_USER):$(POSTGRESQL_PASSWORD)@localhost:5432 -s public --useAllTables -o alembic/diagram.mmd
echo "# ER diagram" > alembic/er_diagram.md
echo -e '```mermaid' >> alembic/er_diagram.md
cat alembic/diagram.mmd >> alembic/er_diagram.md
echo '```' >> alembic/er_diagram.md