81 lines
1.8 KiB
Makefile
81 lines
1.8 KiB
Makefile
# Load environment variables from .env
|
|
set dotenv-load
|
|
|
|
# Default recipe to display help
|
|
default:
|
|
@just --list
|
|
|
|
# Run the application
|
|
run:
|
|
go run cmd/api/main.go
|
|
|
|
# Build the application
|
|
build:
|
|
go build -o bin/api cmd/api/main.go
|
|
|
|
# Start the project with file watchers
|
|
dev: db-up migrate-up
|
|
air
|
|
|
|
# Run tests
|
|
test:
|
|
go test -v ./...
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
rm -rf bin/
|
|
|
|
# Start the database
|
|
db-up:
|
|
docker-compose up -d
|
|
@echo "Waiting for database to be ready..."
|
|
@sleep 2
|
|
|
|
# Stop the database
|
|
db-down:
|
|
docker-compose down
|
|
|
|
# Reset the database (WARNING: deletes all data)
|
|
db-reset:
|
|
docker-compose down -v
|
|
docker-compose up -d
|
|
@echo "Waiting for database to be ready..."
|
|
@sleep 2
|
|
just migrate-up
|
|
|
|
# Run all database migrations
|
|
migrate-up: db-up
|
|
go run -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest -path migrations -database "${DATABASE_URL}" up
|
|
|
|
# Rollback last migration
|
|
migrate-down:
|
|
go run -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest -path migrations -database "${DATABASE_URL}" down 1
|
|
|
|
# Create a new migration
|
|
migrate-create NAME:
|
|
go run -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest create -ext sql -dir migrations -seq {{NAME}}
|
|
|
|
# Connect to the database with pgcli
|
|
db-connect:
|
|
pgcli "${DATABASE_URL}"
|
|
|
|
# Run seed data
|
|
db-seed:
|
|
@echo "Seeding database..."
|
|
psql "${DATABASE_URL}" -f seeds/exercise_categories.sql
|
|
psql "${DATABASE_URL}" -f seeds/exercises.sql
|
|
psql "${DATABASE_URL}" -f seeds/users.sql
|
|
psql "${DATABASE_URL}" -f seeds/workouts.sql
|
|
@echo "Seed data loaded!"
|
|
|
|
# Reset database and run seeds
|
|
db-fresh: db-reset db-seed
|
|
|
|
# View database logs
|
|
db-logs:
|
|
docker-compose logs -f postgres
|
|
|
|
# Check database status
|
|
db-status:
|
|
docker-compose ps
|