You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.1 KiB
85 lines
2.1 KiB
#!/bin/bash
|
|
# ============================================
|
|
# RuoYi-Vue 数据库迁移脚本
|
|
# 使用方式: ./05_migration.sh
|
|
# ============================================
|
|
|
|
DB_HOST="localhost"
|
|
DB_PORT="3306"
|
|
DB_USER="root"
|
|
DB_PASS="password"
|
|
DB_NAME="ry-vue"
|
|
|
|
BACKUP_DIR="./backup"
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
|
|
echo "========================================"
|
|
echo "RuoYi-Vue 数据库迁移"
|
|
echo "开始时间: $(date)"
|
|
echo "========================================"
|
|
|
|
# 1. 创建备份目录
|
|
mkdir -p $BACKUP_DIR
|
|
|
|
# 2. 备份现有数据库
|
|
echo "[1/5] 备份现有数据库..."
|
|
mysqldump -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/backup_$TIMESTAMP.sql
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ 备份成功: $BACKUP_DIR/backup_$TIMESTAMP.sql"
|
|
else
|
|
echo "✗ 备份失败,终止迁移"
|
|
exit 1
|
|
fi
|
|
|
|
# 3. 执行索引优化
|
|
echo "[2/5] 执行索引优化..."
|
|
mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME < 01_add_indexes.sql
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ 索引优化成功"
|
|
else
|
|
echo "✗ 索引优化失败"
|
|
fi
|
|
|
|
# 4. 添加审计字段
|
|
echo "[3/5] 添加审计字段..."
|
|
mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME < 03_add_audit_fields.sql
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ 审计字段添加成功"
|
|
else
|
|
echo "✗ 审计字段添加失败"
|
|
fi
|
|
|
|
# 5. 修复拼写错误
|
|
echo "[4/5] 修复拼写错误..."
|
|
mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME < 04_fix_typos.sql
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ 拼写错误修复成功"
|
|
else
|
|
echo "✗ 拼写错误修复失败"
|
|
fi
|
|
|
|
# 6. 验证迁移
|
|
echo "[5/5] 验证迁移..."
|
|
mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME -e "
|
|
SELECT
|
|
TABLE_NAME,
|
|
TABLE_ROWS,
|
|
DATA_LENGTH,
|
|
INDEX_LENGTH
|
|
FROM information_schema.TABLES
|
|
WHERE TABLE_SCHEMA = '$DB_NAME'
|
|
ORDER BY TABLE_NAME;
|
|
"
|
|
|
|
echo "========================================"
|
|
echo "迁移完成"
|
|
echo "结束时间: $(date)"
|
|
echo "========================================"
|
|
echo ""
|
|
echo "如需回滚,执行以下命令:"
|
|
echo "mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME < $BACKUP_DIR/backup_$TIMESTAMP.sql"
|