hyapp-server/server/admin/migrations/024_admin_app_config_schema_backfill.sql
2026-05-29 12:52:58 +08:00

55 lines
2.5 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 本迁移同时覆盖两种开发阶段状态:
-- 1. 老库已有 admin_app_configs但由早期 AutoMigrate 建表,缺少描述和创建时间列;
-- 2. 新本地库先跑 SQL migrations 再 AutoMigrate此时表还不存在后续 ALTER 会直接失败。
CREATE TABLE IF NOT EXISTS admin_app_configs (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`group` VARCHAR(64) NOT NULL,
`key` VARCHAR(100) NOT NULL,
value TEXT,
description VARCHAR(255) NOT NULL DEFAULT '' COMMENT '描述信息',
created_at_ms BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间UTC epoch ms',
updated_at_ms BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间UTC epoch ms',
PRIMARY KEY (id),
UNIQUE KEY idx_admin_app_config_group_key (`group`, `key`),
KEY idx_admin_app_configs_group (`group`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 老生产库曾由早期 AutoMigrate 建表,缺少当前模型依赖的描述和创建时间列。
SET @ddl := IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'admin_app_configs' AND COLUMN_NAME = 'description') = 0,
'ALTER TABLE admin_app_configs ADD COLUMN description VARCHAR(255) NOT NULL DEFAULT '''' COMMENT ''描述信息'' AFTER value',
'SELECT 1'
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @ddl := IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'admin_app_configs' AND COLUMN_NAME = 'created_at_ms') = 0,
'ALTER TABLE admin_app_configs ADD COLUMN created_at_ms BIGINT NOT NULL DEFAULT 0 COMMENT ''创建时间UTC epoch ms'' AFTER description',
'SELECT 1'
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @ddl := IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'admin_app_banners' AND COLUMN_NAME = 'created_at_ms') = 0,
'ALTER TABLE admin_app_banners ADD COLUMN created_at_ms BIGINT NOT NULL DEFAULT 0 COMMENT ''创建时间UTC epoch ms'' AFTER ends_at_ms',
'SELECT 1'
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @ddl := IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'admin_app_versions' AND COLUMN_NAME = 'created_at_ms') = 0,
'ALTER TABLE admin_app_versions ADD COLUMN created_at_ms BIGINT NOT NULL DEFAULT 0 COMMENT ''创建时间UTC epoch ms'' AFTER description',
'SELECT 1'
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;