11 KiB
项目迁移检查清单
⚠️ 重要提醒
在删除C盘旧文件之前,请完成以下所有检查!
✅ 迁移验证检查
1. 文件完整性检查
-
检查关键文件是否存在
Test-Path D:\project\go.mod Test-Path D:\project\README.md Test-Path D:\project\cmd\server\main.go Test-Path D:\project\configs\config.yaml Test-Path D:\project\docker-compose.yml预期结果: 全部返回
True -
检查关键目录是否存在
Test-Path D:\project\cmd Test-Path D:\project\internal Test-Path D:\project\configs Test-Path D:\project\docs Test-Path D:\project\migrations Test-Path D:\project\deployment预期结果: 全部返回
True
2. 文件数量验证
- 统计D盘项目文件数
预期结果: 应该 >= 117
(Get-ChildItem -Path D:\project -Recurse -File | Measure-Object).Count
3. 文件大小验证
- 计算项目总大小
预期结果: 应该接近 0.85 MB
[math]::Round((Get-ChildItem -Path D:\project -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB, 2)
🔧 环境配置检查
4. Go环境安装
-
检查Go是否已安装
go version预期结果: 显示版本号 (如: go version go1.23.x windows/amd64)
-
如果未安装,下载并安装Go
- 下载地址: https://golang.org/dl/
- 选择:
go1.23.x.windows-amd64.msi - 运行安装程序
- 重启命令行窗口
-
验证Go环境变量
go env预期结果: 显示完整的Go环境配置
5. Go模块验证
-
切换到项目目录
cd D:\project -
验证Go模块
go mod verify预期结果: 显示 "all modules verified"
-
下载依赖
go mod download预期结果: 无错误
6. 编译验证
-
尝试编译项目
go build ./cmd/server预期结果: 生成
server.exe文件 -
检查生成的可执行文件
Test-Path D:\project\server.exe预期结果: 返回
True
🚀 运行测试检查
7. 启动项目
-
运行项目(开发模式)
go run cmd/server/main.go预期结果: 服务器启动,监听 8080 端口
成功标志:
- 看到 "Server started on port 8080"
- 看到 "Database connected"
- 无错误日志
-
测试健康检查接口
# 在新的PowerShell窗口中执行 Invoke-RestMethod -Uri "http://localhost:8080/health"预期结果: 返回状态码 200
-
测试Prometheus指标接口
Invoke-RestMethod -Uri "http://localhost:8080/metrics"预期结果: 返回指标数据
8. API功能测试
-
测试用户注册
Invoke-RestMethod -Uri "http://localhost:8080/api/v1/auth/register" ` -Method POST ` -ContentType "application/json" ` -Body '{"username":"testuser","password":"Test123456","email":"test@example.com"}'预期结果: 返回成功消息和用户信息
-
测试用户登录
$response = Invoke-RestMethod -Uri "http://localhost:8080/api/v1/auth/login" ` -Method POST ` -ContentType "application/json" ` -Body '{"account":"admin","password":"<initialized-password>"}'预期结果: 返回 access_token 和 refresh_token
-
测试获取用户信息
$token = $response.access_token Invoke-RestMethod -Uri "http://localhost:8080/api/v1/auth/userinfo" ` -Headers @{Authorization = "Bearer $token"}预期结果: 返回用户信息
🐳 Docker配置检查
9. Docker环境验证
-
检查Docker是否安装
docker --version预期结果: 显示Docker版本
-
启动Docker服务(如果需要)
10. Docker Compose测试
-
构建并启动服务
cd D:\project docker-compose up -d预期结果: 容器启动成功
-
查看容器状态
docker-compose ps预期结果: 容器状态为 "Up"
-
查看日志
docker-compose logs预期结果: 无错误日志
-
停止服务
docker-compose down预期结果: 容器停止并删除
📁 IDE配置更新
11. VS Code配置(如果使用)
-
更新工作区路径
- File → Open Folder → 选择
D:\project - 保存新的工作区配置
- File → Open Folder → 选择
-
更新launch.json(调试配置)
{ "version": "0.2.0", "configurations": [ { "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${workspaceFolder}/cmd/server", "cwd": "${workspaceFolder}" } ] } -
更新settings.json(工作区设置)
{ "go.toolsGopath": "${workspaceFolder}", "go.gopath": "${workspaceFolder}", "go.inferGopath": false }
12. GoLand配置(如果使用)
-
打开新项目
- File → Open → 选择
D:\project - 选择 "Open as Go Module"
- File → Open → 选择
-
配置GOROOT和GOPATH
- File → Settings → Go → GOROOT
- 确认GOROOT指向正确的Go安装目录
-
配置运行配置
- Run → Edit Configurations
- 更新Working directory为
D:\project
🔒 配置文件验证
13. 配置文件检查
-
检查配置文件路径(相对路径,无需修改)
Get-Content D:\project\configs\config.yaml关键配置项:
database.sqlite.path: ./data/user_management.dblogging.output: [stdout, ./logs/app.log]
这些使用相对路径,会自动使用D:\project作为基准
-
确认配置正确
- 服务器端口: 8080
- 数据库类型: sqlite
- 日志级别: info
14. 测试配置加载
- 启动项目并检查配置
预期结果: 控制台显示配置信息
go run cmd/server/main.go
📊 数据迁移检查(如果有)
15. 检查是否有现有数据
-
检查C盘是否有数据库文件
Test-Path c:\Users\Admin\WorkBuddy\20260310215221\data\user_management.db -
如果有,复制到新位置
New-Item -ItemType Directory -Path D:\project\data -Force Copy-Item c:\Users\Admin\WorkBuddy\20260310215221\data\*.db D:\project\data\ -
检查是否有日志文件
Test-Path c:\Users\Admin\WorkBuddy\20260310215221\logs\*.log -
如果有,决定是否迁移日志(通常不需要)
✅ 最终确认
16. 功能完整性测试
- 列出所有已实现的功能并进行测试
- 用户注册
- 用户登录
- JWT认证
- 用户信息获取
- 角色权限管理
- 设备管理
- OAuth社交登录
- 验证码系统
- 限流保护
- 健康检查
- Prometheus监控
17. 性能测试(可选)
-
压力测试
# 使用Apache Bench或其他压力测试工具 ab -n 1000 -c 10 http://localhost:8080/health -
检查响应时间和资源占用
🧹 清理C盘旧文件
⚠️ 重要:只有完成上述所有检查后,才能执行此步骤!
18. 备份C盘旧文件(可选)
- 如果担心,可以先压缩备份
Compress-Archive -Path c:\Users\Admin\WorkBuddy\20260310215221 ` -DestinationPath C:\project_backup.zip
19. 删除C盘旧文件
-
确认D盘项目完全正常后
Remove-Item -Path "c:\Users\Admin\WorkBuddy\20260310215221" -Recurse -Force -
验证删除成功
Test-Path c:\Users\Admin\WorkBuddy\20260310215221预期结果: 返回
False
20. 验证C盘空间释放
- 检查C盘可用空间
Get-PSDrive C | Select-Object Used, Free
📝 检查记录表
| 检查项 | 状态 | 备注 |
|---|---|---|
| 1. 文件完整性检查 | ⬜ | |
| 2. 文件数量验证 | ⬜ | |
| 3. 文件大小验证 | ⬜ | |
| 4. Go环境安装 | ⬜ | |
| 5. Go模块验证 | ⬜ | |
| 6. 编译验证 | ⬜ | |
| 7. 启动项目 | ⬜ | |
| 8. API功能测试 | ⬜ | |
| 9. Docker环境验证 | ⬜ | |
| 10. Docker Compose测试 | ⬜ | |
| 11. VS Code配置 | ⬜ | |
| 12. GoLand配置 | ⬜ | |
| 13. 配置文件检查 | ⬜ | |
| 14. 测试配置加载 | ⬜ | |
| 15. 数据迁移检查 | ⬜ | |
| 16. 功能完整性测试 | ⬜ | |
| 17. 性能测试 | ⬜ | |
| 18. 备份C盘旧文件 | ⬜ | |
| 19. 删除C盘旧文件 | ⬜ | |
| 20. 验证C盘空间释放 | ⬜ |
🎯 快速检查脚本
保存为 quick_check.ps1 并运行:
# 快速检查脚本
Write-Host "====================================" -ForegroundColor Cyan
Write-Host "项目迁移快速检查" -ForegroundColor Cyan
Write-Host "====================================" -ForegroundColor Cyan
Write-Host ""
# 1. 检查关键文件
Write-Host "1. 检查关键文件..." -ForegroundColor Yellow
$files = @("go.mod", "README.md", "cmd\server\main.go", "configs\config.yaml")
foreach ($file in $files) {
$path = "D:\project\$file"
$status = if (Test-Path $path) { "✅" } else { "❌" }
Write-Host " $status $file"
}
Write-Host ""
# 2. 检查Go环境
Write-Host "2. 检查Go环境..." -ForegroundColor Yellow
try {
$goVersion = go version 2>&1
Write-Host " ✅ Go已安装: $goVersion"
} catch {
Write-Host " ❌ Go未安装"
}
Write-Host ""
# 3. 统计文件
Write-Host "3. 统计文件..." -ForegroundColor Yellow
$fileCount = (Get-ChildItem -Path D:\project -Recurse -File | Measure-Object).Count
Write-Host " 文件数: $fileCount"
Write-Host ""
# 4. 计算大小
Write-Host "4. 计算大小..." -ForegroundColor Yellow
$size = [math]::Round((Get-ChildItem -Path D:\project -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB, 2)
Write-Host " 总大小: ${size} MB"
Write-Host ""
Write-Host "====================================" -ForegroundColor Cyan
Write-Host "检查完成!" -ForegroundColor Green
Write-Host "====================================" -ForegroundColor Cyan
运行方式:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.\quick_check.ps1
📞 遇到问题?
如果检查过程中遇到问题:
-
编译失败
- 检查Go版本是否 >= 1.23
- 运行
go mod tidy整理依赖 - 查看错误信息并修复
-
运行失败
- 检查端口8080是否被占用
- 检查配置文件是否正确
- 查看日志文件排查问题
-
API测试失败
- 确认服务器已启动
- 检查请求格式是否正确
- 查看服务器日志
-
Docker问题
- 确认Docker服务已启动
- 检查docker-compose.yml配置
- 查看Docker日志
记住: 只有完成所有检查项,确认D盘项目完全正常后,才能删除C盘旧文件!