Merge branch 'dev-mysql-support' into master
- 新增 MySQL 数据库驱动支持,支持跨设备数据同步 - 新增 MySQL 专项测试能力(并发、约束、迁移) - 重构迁移目录结构:migrations/sqlite 和 migrations/mysql - 修复 statsRepo 并发竞态条件,使用 upsert 保证原子性 - Makefile 合并:保留完整命令体系 + 新增 MySQL 测试命令
This commit is contained in:
45
Makefile
45
Makefile
@@ -2,6 +2,7 @@
|
||||
backend-build backend-run backend-dev backend-test backend-test-unit backend-test-integration backend-test-coverage \
|
||||
backend-lint backend-clean backend-deps backend-generate \
|
||||
backend-db-up backend-db-down backend-db-status backend-db-create \
|
||||
test-mysql-up test-mysql-down test-mysql test-mysql-quick \
|
||||
frontend-build frontend-dev frontend-test frontend-test-watch frontend-test-coverage frontend-test-e2e frontend-lint frontend-clean \
|
||||
desktop-build desktop-build-mac desktop-build-win desktop-build-linux \
|
||||
desktop-dev desktop-package-mac desktop-package-win desktop-package-linux desktop-clean \
|
||||
@@ -66,17 +67,53 @@ backend-generate:
|
||||
cd backend && go generate ./...
|
||||
|
||||
backend-db-up:
|
||||
cd backend && goose -dir migrations sqlite3 $(DB_PATH) up
|
||||
@echo "Running database migration up..."
|
||||
cd backend && goose -dir migrations/sqlite3 sqlite3 "$(DB_PATH)" up
|
||||
|
||||
backend-db-down:
|
||||
cd backend && goose -dir migrations sqlite3 $(DB_PATH) down
|
||||
@echo "Running database migration down..."
|
||||
cd backend && goose -dir migrations/sqlite3 sqlite3 "$(DB_PATH)" down
|
||||
|
||||
backend-db-status:
|
||||
cd backend && goose -dir migrations sqlite3 $(DB_PATH) status
|
||||
@echo "Checking database migration status..."
|
||||
cd backend && goose -dir migrations/sqlite3 sqlite3 "$(DB_PATH)" status
|
||||
|
||||
backend-db-create:
|
||||
@read -p "Migration name: " name; \
|
||||
cd backend && goose -dir migrations create $$name sql
|
||||
cd backend && goose -dir migrations/sqlite create $$name sql; \
|
||||
cd backend && goose -dir migrations/mysql create $$name sql
|
||||
|
||||
# ============================================
|
||||
# MySQL 专项测试
|
||||
# ============================================
|
||||
|
||||
test-mysql-up:
|
||||
@echo "Starting MySQL test container..."
|
||||
cd backend/tests/mysql && docker-compose up -d
|
||||
@echo "Waiting for MySQL to be ready..."
|
||||
@for i in $$(seq 1 30); do \
|
||||
if docker exec nex-mysql-test mysqladmin ping -h localhost -u root -ptestpass --silent 2>/dev/null; then \
|
||||
echo "MySQL is ready!"; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
echo "Waiting... ($$i/30)"; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
echo "MySQL failed to start"; \
|
||||
exit 1
|
||||
|
||||
test-mysql-down:
|
||||
@echo "Stopping MySQL test container..."
|
||||
cd backend/tests/mysql && docker-compose down -v
|
||||
|
||||
test-mysql: test-mysql-up
|
||||
@echo "Running MySQL tests..."
|
||||
cd backend && go test -tags=mysql ./tests/mysql/... -v -count=1
|
||||
$(MAKE) test-mysql-down
|
||||
|
||||
test-mysql-quick:
|
||||
@echo "Running MySQL tests (without container management)..."
|
||||
cd backend && go test -tags=mysql ./tests/mysql/... -v -count=1
|
||||
|
||||
# ============================================
|
||||
# 前端
|
||||
|
||||
Reference in New Issue
Block a user