cleanup-test-users.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/bash
  2. # 清理测试用户脚本
  3. echo "🔍 检查测试用户数量..."
  4. # 统计测试用户
  5. docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
  6. SELECT
  7. COUNT(*) as 测试用户数量
  8. FROM users
  9. WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
  10. AND deleted_at IS NULL;
  11. "
  12. echo ""
  13. echo "📋 预览将要删除的用户(前 10 个)..."
  14. docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
  15. SELECT id, name, created_at
  16. FROM users
  17. WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
  18. AND deleted_at IS NULL
  19. ORDER BY created_at DESC
  20. LIMIT 10;
  21. "
  22. echo ""
  23. read -p "⚠️ 确认删除这些测试用户吗?(y/N): " confirm
  24. if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
  25. echo "🗑️ 开始清理..."
  26. # 软删除关联的 keys
  27. docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
  28. UPDATE keys
  29. SET deleted_at = NOW(), updated_at = NOW()
  30. WHERE user_id IN (
  31. SELECT id FROM users
  32. WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
  33. AND deleted_at IS NULL
  34. )
  35. AND deleted_at IS NULL;
  36. "
  37. # 软删除测试用户
  38. docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
  39. UPDATE users
  40. SET deleted_at = NOW(), updated_at = NOW()
  41. WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
  42. AND deleted_at IS NULL;
  43. "
  44. echo "✅ 清理完成!"
  45. echo ""
  46. echo "📊 剩余用户统计:"
  47. docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
  48. SELECT COUNT(*) as 总用户数 FROM users WHERE deleted_at IS NULL;
  49. "
  50. else
  51. echo "❌ 取消清理"
  52. fi