feat: 添加数据库依赖检查脚本

功能:
- SQLite 数据库检查
- PostgreSQL 服务检查
- Qdrant 服务检查
- MongoDB 服务检查

检查项目:
- 数据库文件是否存在
- 服务是否运行
- 数据库/集合是否存在
- 必需服务状态总结

用法:
./scripts/check_db_dependencies.sh
This commit is contained in:
2026-10-12 14:45:07 +08:00
parent 1bd4b9215f
commit 9248340308

109
scripts/check_db_dependencies.sh Executable file
View File

@@ -0,0 +1,109 @@
#!/bin/bash
# 数据库依赖检查脚本
echo "================================================================================
数据库依赖检查
================================================================================
"
USER_HOME=$(eval echo ~${SUDO_USER:-$USER})
echo "1. SQLite 数据库检查"
echo "--------------------------------------------------------------------------------"
# Momentry Studio SQLite
STUDIO_DB="/Users/accusys/momentry_studio/data/users/demo.sqlite"
if [ -f "$STUDIO_DB" ]; then
echo "✅ Momentry Studio SQLite: $STUDIO_DB"
echo " 大小: $(ls -lh "$STUDIO_DB" | awk '{print $5}')"
echo " 表数量: $(sqlite3 "$STUDIO_DB" "SELECT COUNT(*) FROM sqlite_master WHERE type='table';" 2>/dev/null || echo "N/A")"
else
echo "❌ Momentry Studio SQLite: 不存在"
fi
echo ""
# MarkBase SQLite
MARKBASE_DB="${USER_HOME}/markbase/data/auth.sqlite"
if [ -f "$MARKBASE_DB" ]; then
echo "✅ MarkBase SQLite: $MARKBASE_DB"
echo " 大小: $(ls -lh "$MARKBASE_DB" | awk '{print $5}')"
else
echo "❌ MarkBase SQLite: 不存在"
fi
echo ""
echo "2. PostgreSQL 检查"
echo "--------------------------------------------------------------------------------"
# 检查 PostgreSQL 服务
if lsof -i :5432 >/dev/null 2>&1; then
echo "✅ PostgreSQL 服务: 运行中 (端口 5432)"
# 检查 momentry 数据库
if psql -U ${USER:-postgres} -l 2>/dev/null | grep -q "momentry"; then
echo "✅ Momentry 数据库: 存在"
else
echo "❌ Momentry 数据库: 不存在"
fi
else
echo "❌ PostgreSQL 服务: 未运行"
fi
echo ""
echo "3. Qdrant 检查"
echo "--------------------------------------------------------------------------------"
# 检查 Qdrant 服务
if curl -s http://localhost:6333/collections 2>/dev/null | grep -q "result"; then
echo "✅ Qdrant 服务: 运行中 (端口 6333)"
# 检查 momentry 集合
if curl -s http://localhost:6333/collections/momentry_rule1 2>/dev/null | grep -q "momentry_rule1"; then
echo "✅ Momentry 集合: 存在"
else
echo "⚠️ Momentry 集合: 不存在"
fi
else
echo "❌ Qdrant 服务: 未运行"
fi
echo ""
echo "4. MongoDB 检查"
echo "--------------------------------------------------------------------------------"
# 检查 MongoDB 服务
if lsof -i :27017 >/dev/null 2>&1; then
echo "✅ MongoDB 服务: 运行中 (端口 27017)"
# 检查 momentry 数据库
if mongosh --quiet --eval "db.getSiblingDB('momentry').stats()" 2>/dev/null | grep -q "db"; then
echo "✅ Momentry 数据库: 存在"
else
echo "⚠️ Momentry 数据库: 不存在"
fi
else
echo "❌ MongoDB 服务: 未运行"
fi
echo ""
echo "================================================================================
检查总结
================================================================================
"
echo "必需服务状态:"
echo " Momentry Studio (前端):"
echo " - SQLite: $([ -f "$STUDIO_DB" ] && echo "✅ 就绪" || echo "❌ 缺失")"
echo ""
echo " Momentry Core (后端):"
echo " - PostgreSQL: $([ -f "$STUDIO_DB" ] && lsof -i :5432 >/dev/null 2>&1 && echo "✅ 运行中" || echo "❌ 未运行")"
echo " - Qdrant: $(curl -s http://localhost:6333/health 2>/dev/null | grep -q "ok" && echo "✅ 运行中" || echo "❌ 未运行")"
echo " - MongoDB: $(mongosh --quiet --eval "db.runCommand({ping:1})" 2>/dev/null | grep -q "ok" && echo "✅ 运行中" || echo "❌ 未运行")"
echo ""
echo " MarkBase Core (文件管理):"
echo " - SQLite: $([ -f "$MARKBASE_DB" ] && echo "✅ 就绪" || echo "❌ 缺失")"
echo ""
echo "================================================================================
"