From b1f7764c12d6099a47d1be087e5a73bc585d85e9 Mon Sep 17 00:00:00 2001 From: Shamik Karkhanis Date: Mon, 23 Feb 2026 17:18:07 -0500 Subject: [PATCH] feat(makefile) --- Makefile | 42 ++++++------------------------------------ 1 file changed, 6 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index c6a07bc..f44eaad 100644 --- a/Makefile +++ b/Makefile @@ -17,66 +17,36 @@ generate: docs: generate -# Database migrations (golang-migrate) +# Database migrations via Docker (uses Compose network, works with DATABASE_URL=db:5432) migrate-create: @test -n "$(name)" || (echo "Usage: make migrate-create name=add_users_table" && exit 1) @mkdir -p $(MIGRATIONS_DIR) $(MIGRATE) create -ext sql -dir $(MIGRATIONS_DIR) $(name) migrate-up: - @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ - test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ - $(MIGRATE) -path $(MIGRATIONS_DIR) -database "$$db_url" up - -migrate-down: - @$(MAKE) migrate-down-all - -migrate-down-all: - @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ - test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ - $(MIGRATE) -path $(MIGRATIONS_DIR) -database "$$db_url" down -all - -migrate-down-one: - @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ - test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ - $(MIGRATE) -path $(MIGRATIONS_DIR) -database "$$db_url" down 1 - -migrate-version: - @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ - test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ - $(MIGRATE) -path $(MIGRATIONS_DIR) -database "$$db_url" version - -migrate-force: - @test -n "$(version)" || (echo "Usage: make migrate-force version=" && exit 1) - @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ - test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ - $(MIGRATE) -path $(MIGRATIONS_DIR) -database "$$db_url" force $(version) - -# Database migrations via Docker (uses Compose network, works with DATABASE_URL=db:5432) -migrate-up-docker: @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ docker run --rm --network $(COMPOSE_NETWORK) -v "$(CURDIR)/$(MIGRATIONS_DIR):/migrations" $(MIGRATE_DOCKER_IMAGE) -path /migrations -database "$$db_url" up -migrate-down-docker: +migrate-down: @$(MAKE) migrate-down-all-docker -migrate-down-all-docker: +migrate-down-all: @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ docker run --rm --network $(COMPOSE_NETWORK) -v "$(CURDIR)/$(MIGRATIONS_DIR):/migrations" $(MIGRATE_DOCKER_IMAGE) -path /migrations -database "$$db_url" down -all -migrate-down-one-docker: +migrate-down-one: @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ docker run --rm --network $(COMPOSE_NETWORK) -v "$(CURDIR)/$(MIGRATIONS_DIR):/migrations" $(MIGRATE_DOCKER_IMAGE) -path /migrations -database "$$db_url" down 1 -migrate-version-docker: +migrate-version: @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \ docker run --rm --network $(COMPOSE_NETWORK) -v "$(CURDIR)/$(MIGRATIONS_DIR):/migrations" $(MIGRATE_DOCKER_IMAGE) -path /migrations -database "$$db_url" version -migrate-force-docker: +migrate-force: @test -n "$(version)" || (echo "Usage: make migrate-force-docker version=" && exit 1) @db_url="$${MIGRATE_DATABASE_URL:-$${DATABASE_URL:-$$(grep -E '^DATABASE_URL=' .env 2>/dev/null | head -n1 | cut -d= -f2-)}}"; \ test -n "$$db_url" || (echo "Set MIGRATE_DATABASE_URL or DATABASE_URL (or add DATABASE_URL to .env)" && exit 1); \