| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- # 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 ""
|