chore: 重写初始提交(清空历史,整理后全量提交)
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
-- ============================================================
|
||||
-- 远程库时间字段规范化迁移 SQL
|
||||
-- 作用:把曾由错误代码(createTime='create_time')写入的
|
||||
-- 旧列 create_time / update_time / delete_time
|
||||
-- 重命名为规范列 create_at / update_at / delete_at,
|
||||
-- 并修正列类型/默认值/注释,与 install.sql 保持一致。
|
||||
-- 覆盖表(前缀示例 wxapp_,执行前全部替换为线上真实前缀):
|
||||
-- card, help, medal, member_medal, prop, score_log,
|
||||
-- shop, sms, task, member_prop, member_task, notice
|
||||
-- 说明:
|
||||
-- 1) 旧列若不存在(线上已是新列名),自动跳过,不报错。
|
||||
-- 2) 新列若已存在(说明之前已改过),CHANGE 会失败——故先 DROP 旧列再 ADD 新列,
|
||||
-- 但为安全采用「先探测旧列是否存在」的方式。
|
||||
-- 3) 本脚本幂等:重复执行安全(旧列不存在时整段跳过)。
|
||||
-- ============================================================
|
||||
|
||||
DELIMITER //
|
||||
|
||||
-- 通用迁移存储过程:仅当旧列存在且新列不存在时才改
|
||||
DROP PROCEDURE IF EXISTS `__migrate_time_col`//
|
||||
CREATE PROCEDURE `__migrate_time_col`(
|
||||
IN p_table VARCHAR(64),
|
||||
IN p_old VARCHAR(64),
|
||||
IN p_new VARCHAR(64),
|
||||
IN p_def VARCHAR(255)
|
||||
)
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = p_table
|
||||
AND COLUMN_NAME = p_old
|
||||
) AND NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = p_table
|
||||
AND COLUMN_NAME = p_new
|
||||
) THEN
|
||||
SET @sql = CONCAT('ALTER TABLE `', p_table, '` CHANGE `', p_old, '` `', p_new, '` ', p_def);
|
||||
PREPARE stmt FROM @sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
END//
|
||||
|
||||
DROP PROCEDURE IF EXISTS `__migrate_table`//
|
||||
CREATE PROCEDURE `__migrate_table`(IN p_table VARCHAR(64))
|
||||
BEGIN
|
||||
-- 三列全改(按各自 install.sql 定义)
|
||||
CALL __migrate_time_col(p_table, 'create_time', 'create_at', "int(11) NOT NULL DEFAULT 0 COMMENT '创建时间'");
|
||||
CALL __migrate_time_col(p_table, 'update_time', 'update_at', "int(11) NOT NULL DEFAULT 0 COMMENT '更新时间'");
|
||||
CALL __migrate_time_col(p_table, 'delete_time', 'delete_at', "int(11) NOT NULL DEFAULT 0 COMMENT '删除时间'");
|
||||
END//
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
-- 逐表迁移(member_medal / member_prop / member_task 只有 create_at,无 update/delete)
|
||||
CALL __migrate_table('wxapp_card');
|
||||
CALL __migrate_table('wxapp_help');
|
||||
CALL __migrate_table('wxapp_medal');
|
||||
CALL __migrate_table('wxapp_prop');
|
||||
CALL __migrate_table('wxapp_shop');
|
||||
CALL __migrate_table('wxapp_sms');
|
||||
CALL __migrate_table('wxapp_task');
|
||||
CALL __migrate_table('wxapp_notice');
|
||||
CALL __migrate_table('wxapp_score_log');
|
||||
|
||||
-- 仅含 create_at 的表
|
||||
CALL __migrate_time_col('wxapp_member_medal', 'create_time', 'create_at', "int(11) NOT NULL DEFAULT 0 COMMENT '获得时间'");
|
||||
CALL __migrate_time_col('wxapp_member_prop', 'create_time', 'create_at', "int(11) NOT NULL DEFAULT '0' COMMENT '获得时间'");
|
||||
CALL __migrate_time_col('wxapp_member_task', 'create_time', 'create_at', "int(11) NOT NULL DEFAULT '0' COMMENT '领取时间'");
|
||||
|
||||
-- 清理临时存储过程
|
||||
DROP PROCEDURE IF EXISTS `__migrate_time_col`;
|
||||
DROP PROCEDURE IF EXISTS `__migrate_table`;
|
||||
Reference in New Issue
Block a user