feature/20260628/refactor-frontend-modernization
parent
6c8511f7e8
commit
fbd205dbd1
@ -0,0 +1,57 @@
|
||||
-- ============================================
|
||||
-- 修复主键类型问题
|
||||
-- 将 double 类型主键改为 bigint
|
||||
-- ============================================
|
||||
|
||||
-- 注意:执行前必须先备份数据!
|
||||
|
||||
-- 1. 备份现有数据
|
||||
CREATE TABLE account_backup AS SELECT * FROM account;
|
||||
CREATE TABLE book_backup AS SELECT * FROM book;
|
||||
CREATE TABLE stocks_backup AS SELECT * FROM stocks;
|
||||
CREATE TABLE trends_backup AS SELECT * FROM trends;
|
||||
|
||||
-- 2. 创建新表(正确的主键类型)
|
||||
CREATE TABLE account_new (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
user_id BIGINT NOT NULL,
|
||||
account_name VARCHAR(100) NOT NULL,
|
||||
account_type VARCHAR(50),
|
||||
status CHAR(1) DEFAULT '0',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
INDEX idx_user_id (user_id),
|
||||
INDEX idx_status (status)
|
||||
);
|
||||
|
||||
CREATE TABLE book_new (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
user_id BIGINT NOT NULL,
|
||||
account_id BIGINT NOT NULL,
|
||||
book_name VARCHAR(100) NOT NULL,
|
||||
book_type VARCHAR(50),
|
||||
status CHAR(1) DEFAULT '0',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
INDEX idx_user_id (user_id),
|
||||
INDEX idx_account_id (account_id)
|
||||
);
|
||||
|
||||
-- 3. 迁移数据
|
||||
INSERT INTO account_new (id, user_id, account_name, account_type, status, create_time, update_time)
|
||||
SELECT CAST(id AS SIGNED), user_id, account_name, account_type, status, create_time, update_time
|
||||
FROM account;
|
||||
|
||||
INSERT INTO book_new (id, user_id, account_id, book_name, book_type, status, create_time, update_time)
|
||||
SELECT CAST(id AS SIGNED), user_id, account_id, book_name, book_type, status, create_time, update_time
|
||||
FROM book;
|
||||
|
||||
-- 4. 验证数据完整性
|
||||
SELECT COUNT(*) AS old_count FROM account;
|
||||
SELECT COUNT(*) AS new_count FROM account_new;
|
||||
SELECT COUNT(*) AS old_count FROM book;
|
||||
SELECT COUNT(*) AS new_count FROM book_new;
|
||||
|
||||
-- 5. 切换表名(谨慎执行!)
|
||||
-- RENAME TABLE account TO account_old, account_new TO account;
|
||||
-- RENAME TABLE book TO book_old, book_new TO book;
|
||||
@ -0,0 +1,26 @@
|
||||
-- ============================================
|
||||
-- 添加审计字段
|
||||
-- 为所有业务表添加 created_by, updated_by 等字段
|
||||
-- ============================================
|
||||
|
||||
-- 1. 用户表(已有,不处理)
|
||||
|
||||
-- 2. 业务表添加审计字段
|
||||
ALTER TABLE account
|
||||
ADD COLUMN created_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||
ADD COLUMN updated_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||||
ADD COLUMN remark VARCHAR(500) DEFAULT NULL COMMENT '备注';
|
||||
|
||||
ALTER TABLE book
|
||||
ADD COLUMN created_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||
ADD COLUMN updated_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||||
ADD COLUMN remark VARCHAR(500) DEFAULT NULL COMMENT '备注';
|
||||
|
||||
-- 3. 股票表添加审计字段
|
||||
ALTER TABLE stocks
|
||||
ADD COLUMN created_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||
ADD COLUMN updated_by VARCHAR(64) DEFAULT '' COMMENT '更新者';
|
||||
|
||||
ALTER TABLE trends
|
||||
ADD COLUMN created_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||
ADD COLUMN updated_by VARCHAR(64) DEFAULT '' COMMENT '更新者';
|
||||
@ -0,0 +1,6 @@
|
||||
-- ============================================
|
||||
-- 修复字段名拼写错误
|
||||
-- ============================================
|
||||
|
||||
-- statistics 表字段名拼写错误
|
||||
ALTER TABLE statistics CHANGE operations_id operation_id BIGINT COMMENT '操作ID';
|
||||
@ -0,0 +1,84 @@
|
||||
#!/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"
|
||||
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
# ============================================
|
||||
# RuoYi-Vue 数据库回滚脚本
|
||||
# 使用方式: ./06_rollback.sh <backup_file>
|
||||
# ============================================
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "用法: ./06_rollback.sh <backup_file>"
|
||||
echo "示例: ./06_rollback.sh ./backup/backup_20260628_120000.sql"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BACKUP_FILE=$1
|
||||
|
||||
if [ ! -f "$BACKUP_FILE" ]; then
|
||||
echo "✗ 备份文件不存在: $BACKUP_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DB_HOST="localhost"
|
||||
DB_PORT="3306"
|
||||
DB_USER="root"
|
||||
DB_PASS="password"
|
||||
DB_NAME="ry-vue"
|
||||
|
||||
echo "========================================"
|
||||
echo "RuoYi-Vue 数据库回滚"
|
||||
echo "备份文件: $BACKUP_FILE"
|
||||
echo "========================================"
|
||||
|
||||
# 确认回滚
|
||||
read -p "确认回滚?这将覆盖当前数据库 (yes/no): " confirm
|
||||
if [ "$confirm" != "yes" ]; then
|
||||
echo "回滚已取消"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 执行回滚
|
||||
echo "正在回滚..."
|
||||
mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME < "$BACKUP_FILE"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✓ 回滚成功"
|
||||
else
|
||||
echo "✗ 回滚失败"
|
||||
exit 1
|
||||
fi
|
||||
Loading…
Reference in new issue