# TsDB2 Makefile # 时序数据库构建、测试与开发工具 .PHONY: all build test clean run help \ test-full test-commit test-dirty test-integrity test-mem \ demo-analyzer fmt lint deps tree # ============================================================================= # 默认目标 # ============================================================================= all: build # ============================================================================= # 构建 # ============================================================================= build: @echo "=== 构建 TsDB2 ===" go build ./... @echo "✅ 构建完成" # ============================================================================= # 测试 # ============================================================================= # 运行所有核心测试 test: test-full test-commit test-dirty test-integrity test-mem # 完整功能测试 (28 项测试) test-full: @echo "" @echo "==========================================" @echo " 完整功能测试 (28 项)" @echo "==========================================" cd demo/full_test && go run main.go # 自动提交机制测试 (5 场景) test-commit: @echo "" @echo "==========================================" @echo " 自动提交机制测试 (5 场景)" @echo "==========================================" cd demo/no_commit_test && go run main.go # 脏页阈值性能测试 test-dirty: @echo "" @echo "==========================================" @echo " 脏页阈值性能对比测试" @echo "==========================================" cd demo/dirty_threshold_test && go run main.go # 数据完整性测试 test-integrity: @echo "" @echo "==========================================" @echo " 数据完整性测试" @echo "==========================================" cd demo/integrity_test && go run main.go # 内存使用测试 test-mem: @echo "" @echo "==========================================" @echo " 内存使用测试" @echo "==========================================" cd demo/mem_test && go run main.go # ============================================================================= # Demo 程序 # ============================================================================= # 运行 Analyzer (数据库可视化工具) demo-analyzer: @echo "=== 启动 TsDB2 Analyzer ===" cd analyzer && go run main.go # ============================================================================= # 开发工具 # ============================================================================= # 运行主程序 run: @echo "=== 运行主程序 ===" go run main.go # 代码格式化 fmt: @echo "=== 格式化代码 ===" go fmt ./... @echo "✅ 格式化完成" # 代码静态检查 lint: @echo "=== 代码静态检查 ===" go vet ./... @echo "✅ 检查完成" # 依赖管理 deps: @echo "=== 整理依赖 ===" go mod tidy @echo "=== 验证依赖 ===" go mod verify @echo "✅ 依赖检查完成" # 显示项目结构 tree: @echo "=== TsDB2 项目结构 ===" @echo "" @echo "TsDB2/" @echo "├── DB/ # 数据库核心层" @echo "│ ├── core/ # 底层引擎 (页式存储、B+树、WAL)" @echo "│ ├── db.go # DB 层封装" @echo "│ ├── table.go # 泛型表操作" @echo "│ ├── query.go # 查询构建器" @echo "│ └── model.go # 模型解析" @echo "├── analyzer/ # 数据库可视化工具" @echo "├── demo/ # 测试程序" @echo "│ ├── full_test/ # 完整功能测试" @echo "│ ├── no_commit_test/ # 自动提交测试" @echo "│ ├── dirty_threshold_test/ # 脏页阈值测试" @echo "│ ├── integrity_test/ # 数据完整性测试" @echo "│ └── mem_test/ # 内存使用测试" @echo "├── docs/ # 文档" @echo "└── Makefile # 构建脚本" @echo "" # 清理临时文件 clean: @echo "=== 清理临时文件 ===" @rm -f demo/*/*.db @rm -f *.db @rm -f demo/*/*.exe @echo "✅ 清理完成" # ============================================================================= # 帮助信息 # ============================================================================= help: @echo "╔═══════════════════════════════════════════════════════════╗" @echo "║ TsDB2 Makefile 使用说明 ║" @echo "╚═══════════════════════════════════════════════════════════╝" @echo "" @echo "📦 构建与运行" @echo " make build - 构建整个项目" @echo " make run - 运行主程序" @echo " make clean - 清理临时文件 (.db, .exe)" @echo "" @echo "🧪 核心测试" @echo " make test - 运行所有核心测试 (推荐)" @echo " make test-full - 完整功能测试 (28 项)" @echo " make test-commit - 自动提交机制测试 (5 场景)" @echo " make test-dirty - 脏页阈值性能对比测试" @echo " make test-integrity - 数据完整性测试" @echo " make test-mem - 内存使用测试" @echo "" @echo "🎨 Demo 程序" @echo " make demo-analyzer - 启动数据库可视化工具" @echo "" @echo "🛠️ 开发工具" @echo " make fmt - 格式化代码" @echo " make lint - 代码静态检查 (go vet)" @echo " make deps - 依赖管理 (tidy + verify)" @echo " make tree - 显示项目结构" @echo "" @echo "📖 快速开始" @echo " make build && make test # 构建并运行所有测试" @echo " make demo-analyzer # 启动可视化工具" @echo "" @echo "💡 提示" @echo " - 首次使用建议运行: make test" @echo " - 查看 Analyzer: make demo-analyzer" @echo " - 提交前检查: make fmt && make lint" @echo ""