109 lines
3.4 KiB
Makefile
109 lines
3.4 KiB
Makefile
# Time Tracker Backend Makefile
|
|
|
|
.PHONY: db-start db-stop db-test model-test run build clean migrate seed help
|
|
|
|
# Default target
|
|
.DEFAULT_GOAL := help
|
|
|
|
# Variables
|
|
BINARY_NAME=timetracker
|
|
DB_CONTAINER=timetracker_db
|
|
|
|
# Help target
|
|
help:
|
|
@echo "Time Tracker Backend Makefile"
|
|
@echo ""
|
|
@echo "Usage:"
|
|
@echo " make db-start - Start the PostgreSQL database container"
|
|
@echo " make db-stop - Stop the PostgreSQL database container"
|
|
@echo " make db-test - Test the database connection"
|
|
@echo " make model-test - Test the database models"
|
|
@echo " make run - Run the application"
|
|
@echo " make build - Build the application"
|
|
@echo " make clean - Remove build artifacts"
|
|
@echo " make migrate - Run database migrations"
|
|
@echo " make seed - Seed the database with initial data"
|
|
@echo " make db-drop-users - Drop the users table"
|
|
@echo " make db-reinit - Re-initialize the database"
|
|
@echo " make help - Show this help message"
|
|
|
|
# Start the database
|
|
db-start:
|
|
@echo "Starting PostgreSQL database container..."
|
|
@cd .. && docker-compose up -d db
|
|
@echo "Database container started"
|
|
|
|
# Stop the database
|
|
db-stop:
|
|
@echo "Stopping PostgreSQL database container..."
|
|
@cd .. && docker-compose stop db
|
|
@echo "Database container stopped"
|
|
|
|
# Test the database connection
|
|
db-test:
|
|
@echo "Testing database connection..."
|
|
@go run cmd/dbtest/main.go
|
|
|
|
# Test the database models
|
|
model-test:
|
|
@echo "Testing database models..."
|
|
@go run cmd/modeltest/main.go
|
|
|
|
# Run the application
|
|
run:
|
|
@echo "Running the application..."
|
|
@go run cmd/api/main.go
|
|
|
|
# Build the application
|
|
build:
|
|
@echo "Building the application..."
|
|
@go build -o $(BINARY_NAME) cmd/api/main.go
|
|
@echo "Build complete: $(BINARY_NAME)"
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
@echo "Cleaning build artifacts..."
|
|
@rm -f $(BINARY_NAME)
|
|
@echo "Clean complete"
|
|
|
|
# Run database migrations
|
|
migrate:
|
|
@echo "Running database migrations..."
|
|
@go run -mod=mod cmd/migrate/main.go
|
|
@echo "Migrations complete"
|
|
|
|
# Seed the database with initial data
|
|
seed:
|
|
@echo "Seeding the database..."
|
|
@go run -mod=mod cmd/seed/main.go
|
|
@echo "Seeding complete"
|
|
|
|
# Drop the users table
|
|
db-drop-users:
|
|
@echo "Dropping the users table..."
|
|
@export PG_HOST=$(DB_HOST); export PG_PORT=$(DB_PORT); export PG_USER=$(DB_USER); export PG_PASSWORD=$(DB_PASSWORD); export PG_DBNAME=$(DB_NAME); go run cmd/dbtest/main.go -drop_table=users
|
|
@echo "Users table dropped"
|
|
|
|
# Re-initialize the database
|
|
db-reinit:
|
|
@echo "Re-initializing the database..."
|
|
@PG_HOST=$(DB_HOST) PG_PORT=$(DB_PORT) PG_USER=$(DB_USER) PG_PASSWORD=$(DB_PASSWORD) PG_DBNAME=$(DB_NAME) go run cmd/migrate/main.go -create_db -drop_db
|
|
@echo "Database re-initialized"
|
|
|
|
help:
|
|
@echo "Time Tracker Backend Makefile"
|
|
@echo ""
|
|
@echo "Usage:"
|
|
@echo " make db-start - Start the PostgreSQL database container"
|
|
@echo " make db-stop - Stop the PostgreSQL database container"
|
|
@echo " make db-test - Test the database connection"
|
|
@echo " make model-test - Test the database models"
|
|
@echo " make run - Run the application"
|
|
@echo " make build - Build the application"
|
|
@echo " make clean - Remove build artifacts"
|
|
@echo " make migrate - Run database migrations"
|
|
@echo " make seed - Seed the database with initial data"
|
|
@echo " make db-drop-users - Drop the users table"
|
|
@echo " make db-reinit - Re-initialize the database"
|
|
@echo " make help - Show this help message"
|