tofu-api/Makefile

76 lines
1.7 KiB
Makefile

# Define variables
DOCKER_COMPOSE = docker-compose
DOCKER_RUN = $(DOCKER_COMPOSE) run --rm backend
# General
# -------
# Default target
.PHONY: up
up: docker-up
# Shortcut for first start (initializing database, etc.)
.PHONY: first-start
first-start: docker-build db-upgrade docker-up
# Container management
# --------------------
.PHONY: docker-up
docker-up:
$(DOCKER_COMPOSE) up --build
.PHONY: docker-down
docker-down:
$(DOCKER_COMPOSE) down --remove-orphans
.PHONY: docker-build
docker-build:
$(DOCKER_COMPOSE) build
.PHONY: docker-rebuild
docker-rebuild:
$(DOCKER_COMPOSE) build --pull --no-cache
.PHONY: docker-purge
docker-purge:
$(DOCKER_COMPOSE) down --remove-orphans --volumes
.PHONY: docker-restart
docker-restart:
$(DOCKER_COMPOSE) restart $(SERVICE)
.PHONY: docker-logs
docker-logs:
$(DOCKER_COMPOSE) logs -f $(SERVICE) || true
.PHONY: docker-run
docker-run:
$(DOCKER_RUN) $(CMD)
.PHONY: docker-shell
docker-shell:
$(DOCKER_RUN) bash
# Database management
# -------------------
# Run migrations to upgrade the database to the head revision (set REVISION parameter to override)
.PHONY: db-upgrade
db-upgrade:
$(DOCKER_RUN) alembic upgrade $(or $(REVISION),head)
# Run migrations to downgrade the database to the previous revision (set REVISION parameter to override)
.PHONY: db-downgrade
db-downgrade:
$(DOCKER_RUN) alembic downgrade $(or $(REVISION),-1)
# Autogenerate a revision for database migration (requires MESSAGE parameter to set the revision message)
.PHONY: db-generate-migration
db-generate-migration:
@test -n "$(MESSAGE)" || (echo "Please set the revision message: make db-generate-migration MESSAGE=\"...\""; exit 1)
$(DOCKER_RUN) alembic revision --autogenerate -m "$(MESSAGE)"