# 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)"