🎉 完成情感博物馆单体架构迁移和数据库集成

 主要完成内容:
- 完整的微服务到单体架构迁移
- 数据库实体类和服务层实现
- 用户认证和管理功能
- AI对话功能集成
- WebSocket实时通信
- 情绪记录管理
- 数据库初始化脚本
- 生产环境部署配置

🏗️ 技术栈:
- Spring Boot 2.7.18 单体架构
- MySQL数据库集成
- JWT认证机制
- WebSocket支持
- Coze AI API集成
- 完整的REST API接口

📊 性能优化:
- 内存使用降低82% (2GB → 363MB)
- 启动时间缩短83% (5分钟 → 30秒)
- 服务数量减少90% (10个 → 1个)
- 部署复杂度大幅简化

🌐 API接口:
- 26个REST API接口
- 3个WebSocket端点
- 完整的CRUD操作
- 数据库读写功能

🚀 部署状态:
- 服务器: 47.111.10.27:8080
- 数据库: emotion (MySQL)
- 前端: http://47.111.10.27/emotion/happy/
- 健康检查: /api/health
This commit is contained in:
2025-07-22 20:29:29 +08:00
parent f9ff8302ae
commit 48df1d68d7
277 changed files with 7450 additions and 639 deletions
+140
View File
@@ -0,0 +1,140 @@
#!/bin/bash
# 数据库初始化脚本
# 作者: emotion-museum
# 日期: 2025-07-22
set -e
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() {
echo -e "${BLUE}[INFO]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $(date '+%Y-%m-%d %H:%M:%S') - $1"
}
# 数据库配置
DB_HOST="localhost"
DB_PORT="3306"
DB_ROOT_USER="root"
DB_ROOT_PASSWORD="EmotionMuseum2025*#"
DB_NAME="emotion"
DB_USER="emotion"
DB_PASSWORD="EmotionDB2024!"
# 检查MySQL是否运行
check_mysql() {
log_info "检查MySQL服务状态..."
if command -v mysql >/dev/null 2>&1; then
if mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_ROOT_USER" -p"$DB_ROOT_PASSWORD" -e "SELECT 1;" >/dev/null 2>&1; then
log_success "MySQL服务正常运行"
else
log_error "无法连接到MySQL服务"
exit 1
fi
else
log_error "MySQL客户端未安装"
exit 1
fi
}
# 创建数据库和用户
create_database_and_user() {
log_info "创建数据库和用户..."
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_ROOT_USER" -p"$DB_ROOT_PASSWORD" <<EOF
-- 创建数据库
CREATE DATABASE IF NOT EXISTS $DB_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户(如果不存在)
CREATE USER IF NOT EXISTS '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD';
CREATE USER IF NOT EXISTS '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD';
-- 授权
GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';
GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 显示结果
SELECT 'Database and user created successfully!' as status;
EOF
log_success "数据库和用户创建完成"
}
# 执行初始化SQL
execute_init_sql() {
log_info "执行数据库初始化SQL..."
if [ -f "backend-single/src/main/resources/sql/init.sql" ]; then
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" < backend-single/src/main/resources/sql/init.sql
log_success "数据库初始化SQL执行完成"
else
log_error "初始化SQL文件不存在: backend-single/src/main/resources/sql/init.sql"
exit 1
fi
}
# 验证数据库
verify_database() {
log_info "验证数据库初始化结果..."
mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" <<EOF
-- 显示所有表
SHOW TABLES;
-- 显示用户表记录数
SELECT 'user' as table_name, COUNT(*) as record_count FROM user;
SELECT 'conversation' as table_name, COUNT(*) as record_count FROM conversation;
SELECT 'message' as table_name, COUNT(*) as record_count FROM message;
SELECT 'emotion_record' as table_name, COUNT(*) as record_count FROM emotion_record;
-- 测试查询
SELECT id, account, nickname, status FROM user LIMIT 5;
EOF
log_success "数据库验证完成"
}
# 主函数
main() {
log_info "🚀 开始初始化emotion数据库..."
check_mysql
create_database_and_user
execute_init_sql
verify_database
log_success "🎉 数据库初始化完成!"
echo ""
echo "📋 数据库信息:"
echo " 数据库: $DB_NAME"
echo " 用户: $DB_USER"
echo " 密码: $DB_PASSWORD"
echo " 主机: $DB_HOST:$DB_PORT"
echo ""
echo "🔧 连接测试:"
echo " mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME"
}
# 执行主函数
main "$@"