init_supplement_only.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. # ============================================
  3. # 仅初始化补充表(不删除现有表)
  4. # ============================================
  5. set -e
  6. # 颜色定义
  7. RED='\033[0;31m'
  8. GREEN='\033[0;32m'
  9. YELLOW='\033[1;33m'
  10. BLUE='\033[0;34m'
  11. NC='\033[0m'
  12. # 数据库配置
  13. DB_HOST=${DB_HOST:-localhost}
  14. DB_PORT=${DB_PORT:-5432}
  15. DB_NAME=${DB_NAME:-lingyue_zhibao}
  16. DB_USER=${DB_USER:-postgres}
  17. log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
  18. log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
  19. log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
  20. log_title() { echo -e "\n${BLUE}========== $1 ==========${NC}\n"; }
  21. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  22. SQL_DIR="${SCRIPT_DIR}"
  23. log_title "初始化补充表"
  24. echo "数据库: ${DB_NAME}"
  25. echo "主机: ${DB_HOST}:${DB_PORT}"
  26. echo "用户: ${DB_USER}"
  27. echo ""
  28. log_info "执行 supplement_tables.sql..."
  29. PGPASSWORD=${DB_PASSWORD} psql -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USER} -d ${DB_NAME} -f "${SQL_DIR}/supplement_tables.sql"
  30. if [ $? -eq 0 ]; then
  31. log_info "补充表初始化成功"
  32. log_info "验证表创建..."
  33. PGPASSWORD=${DB_PASSWORD} psql -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USER} -d ${DB_NAME} <<EOF
  34. SELECT tablename
  35. FROM pg_tables
  36. WHERE schemaname = 'public'
  37. AND tablename IN ('text_storage', 'vector_embeddings', 'knowledge_base', 'rag_sessions', 'rag_messages')
  38. ORDER BY tablename;
  39. EOF
  40. log_title "完成"
  41. else
  42. log_error "补充表初始化失败"
  43. exit 1
  44. fi