# 修复 Shadow 数据库 users 表缺失字段 # 数据库:lobechat_stage Write-Host "`n=== 修复 Shadow 数据库 users 表缺失字段 ===" -ForegroundColor Cyan $server = "root@192.168.58.20" $sqlCommands = @( "ALTER TABLE users ADD COLUMN IF NOT EXISTS `"employmentStatus`" TEXT;", "ALTER TABLE users ADD COLUMN IF NOT EXISTS `"resignationDate`" TIMESTAMP;", "ALTER TABLE users ADD COLUMN IF NOT EXISTS `"transferDate`" TIMESTAMP;", "ALTER TABLE users ADD COLUMN IF NOT EXISTS `"transferToDeptId`" TEXT;", "ALTER TABLE users ADD COLUMN IF NOT EXISTS `"employmentNote`" TEXT;", "ALTER TABLE users ADD COLUMN IF NOT EXISTS `"statusChangedBy`" TEXT;", "ALTER TABLE users ADD COLUMN IF NOT EXISTS `"statusChangedAt`" TIMESTAMP;", "UPDATE users SET `"employmentStatus`" = 'active' WHERE `"employmentStatus`" IS NULL;", "ALTER TABLE users ALTER COLUMN `"employmentStatus`" SET DEFAULT 'active';", "CREATE INDEX IF NOT EXISTS users_employmentStatus_idx ON users(`"employmentStatus`");", "CREATE INDEX IF NOT EXISTS users_transferToDeptId_idx ON users(`"transferToDeptId`");" ) foreach ($sql in $sqlCommands) { Write-Host "执行: $sql" -ForegroundColor Gray $result = ssh $server "docker exec gongxiangpan-postgres-1 psql -U gongxiangpan -d lobechat_stage -c '$sql'" 2>&1 if ($LASTEXITCODE -eq 0) { Write-Host " ✓ 成功" -ForegroundColor Green } else { Write-Host " ⚠ 可能已存在或出错: $result" -ForegroundColor Yellow } } Write-Host "`n=== 验证字段 ===" -ForegroundColor Cyan $verifySql = "SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'users' AND column_name IN ('employmentStatus', 'resignationDate', 'transferDate', 'transferToDeptId', 'employmentNote', 'statusChangedBy', 'statusChangedAt') ORDER BY column_name;" ssh $server "docker exec gongxiangpan-postgres-1 psql -U gongxiangpan -d lobechat_stage -c `"$verifySql`"" 2>&1 Write-Host "`n=== 修复完成 ===" -ForegroundColor Green