.PHONY: build run test test-coverage clean migrate-up migrate-down migrate-status migrate-create lint # 构建 build: go build -o bin/server ./cmd/server # 运行 run: go run ./cmd/server # 测试 test: go test ./... -v # 测试覆盖率 test-coverage: go test ./... -coverprofile=coverage.out go tool cover -html=coverage.out -o coverage.html @echo "Coverage report generated: coverage.html" # 清理 clean: rm -rf bin/ coverage.out coverage.html # 数据库迁移 migrate-up: goose -dir migrations sqlite3 $(DB_PATH) up migrate-down: goose -dir migrations sqlite3 $(DB_PATH) down migrate-status: goose -dir migrations sqlite3 $(DB_PATH) status migrate-create: @read -p "Migration name: " name; \ goose -dir migrations create $$name sql # 代码检查 lint: golangci-lint run ./... # 安装依赖 deps: go mod tidy