language-learning-app/Makefile

54 lines
1.7 KiB
Makefile
Raw Normal View History

.PHONY: down build up logs shell lock migrate migration import-dictionary run-prod-locally
2026-03-18 20:55:02 +00:00
build:
2026-05-03 14:28:11 +00:00
docker compose build --no-cache
2026-03-18 20:55:02 +00:00
build-dev:
docker compose -f docker-compose-dev.yml --env-file .env build --no-cache
up-dev:
docker compose -f docker-compose-dev.yml --env-file .env up -d
up-prod:
docker compose -f docker-compose-prod.yml --env-file .env.prod up -d
run-prod-locally:
docker compose -f docker-compose-prod.yml -f docker-compose-local-override.yml --env-file .env.prod build && \
docker compose -f docker-compose-prod.yml -f docker-compose-local-override.yml --env-file .env.prod up
2026-03-18 20:55:02 +00:00
down:
docker compose down
logs-dev:
docker compose -f docker-compose-dev.yml logs -f
logs-prod:
docker compose -f docker-compose-prod.yml logs -f
2026-03-18 20:55:02 +00:00
shell:
docker compose exec api bash
# Run pending migrations against the running db container
migrate:
docker compose build api --no-cache && docker compose up -d && docker compose exec api alembic upgrade head
migrate-no-build:
docker compose exec api alembic upgrade head
# Generate a new migration: make migration NAME="add foo table"
migration:
docker compose exec api alembic revision --autogenerate -m "$(NAME)"
2026-03-18 20:55:02 +00:00
# Generate a pinned requirements.txt from pyproject.toml (requires uv installed locally)
lock:
cd api && uv pip compile pyproject.toml -o requirements.txt
2026-03-21 20:47:15 +00:00
rebuild: down build up
# Import a kaikki dictionary JSONL into Postgres.
# Requires the DB to be running with its port exposed on localhost (docker compose up).
# DATABASE_URL defaults to the docker-compose dev credentials.
# Usage: make import-dictionary lang=fr
import-dictionary:
cd api && uv run ./scripts/import_dictionary.py --lang $(lang)