refactor: merge tenant configuration into tenant registry
This commit is contained in:
@@ -6,9 +6,9 @@ SET @now := NOW();
|
||||
|
||||
SET @im_sql = IF(
|
||||
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'im_tenant_config'
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'im_tenant'
|
||||
AND COLUMN_NAME = 'message_encryption_enabled') = 0,
|
||||
'ALTER TABLE `im_tenant_config` ADD COLUMN `message_encryption_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''是否启用消息加密'' AFTER `local_moderation_enabled`',
|
||||
'ALTER TABLE `im_tenant` ADD COLUMN `message_encryption_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''是否启用消息加密'' AFTER `local_moderation_enabled`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE im_stmt FROM @im_sql;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
-- 第一阶段:将商户配置扩展并回填到 im_tenant。
|
||||
-- 必须先执行本文件,再发布新版 manager 与 IM Server。
|
||||
-- 本阶段保留 im_tenant_config、db_name、db_dsn,确保旧实例在滚动发布期间仍可运行。
|
||||
|
||||
ALTER TABLE `im_tenant`
|
||||
ADD COLUMN `max_users` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '0表示不限制' AFTER `tenant_desc`,
|
||||
ADD COLUMN `max_groups` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '0表示不限制' AFTER `max_users`,
|
||||
ADD COLUMN `max_group_members` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '0表示不限制' AFTER `max_groups`,
|
||||
ADD COLUMN `realname_review_policy` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '实名审核策略:0自动通过,1转人工审核' AFTER `max_group_members`,
|
||||
ADD COLUMN `realname_provider_mode` VARCHAR(32) NOT NULL DEFAULT 'id_card_2factor' COMMENT '实名认证模式' AFTER `realname_review_policy`,
|
||||
ADD COLUMN `realname_required` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否强制实名' AFTER `realname_provider_mode`,
|
||||
ADD COLUMN `realname_allow_skip` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否允许跳过实名' AFTER `realname_required`,
|
||||
ADD COLUMN `realname_remind_after` VARCHAR(32) NOT NULL DEFAULT '24h' COMMENT '实名提醒延迟' AFTER `realname_allow_skip`,
|
||||
ADD COLUMN `aliyun_moderation_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否启用阿里云内容审核' AFTER `realname_remind_after`,
|
||||
ADD COLUMN `local_moderation_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否启用本地内容审核' AFTER `aliyun_moderation_enabled`,
|
||||
ADD COLUMN `message_encryption_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否启用消息加密' AFTER `local_moderation_enabled`,
|
||||
ADD COLUMN `default_policy_group_id` BIGINT DEFAULT NULL COMMENT '默认用户策略组' AFTER `message_encryption_enabled`,
|
||||
ADD COLUMN `security_policy_version` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '已发布安全策略版本' AFTER `default_policy_group_id`,
|
||||
ADD COLUMN `global_friend_enabled` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '全局加好友开关' AFTER `security_policy_version`,
|
||||
ADD COLUMN `message_curfew_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '消息宵禁开关' AFTER `global_friend_enabled`;
|
||||
|
||||
UPDATE `im_tenant` t
|
||||
INNER JOIN `im_tenant_config` c ON c.`tenant_id`=t.`id`
|
||||
SET t.`max_users`=c.`max_users`,
|
||||
t.`max_groups`=c.`max_groups`,
|
||||
t.`max_group_members`=c.`max_group_members`,
|
||||
t.`realname_review_policy`=c.`realname_review_policy`,
|
||||
t.`realname_provider_mode`=c.`realname_provider_mode`,
|
||||
t.`realname_required`=c.`realname_required`,
|
||||
t.`realname_allow_skip`=c.`realname_allow_skip`,
|
||||
t.`realname_remind_after`=c.`realname_remind_after`,
|
||||
t.`aliyun_moderation_enabled`=c.`aliyun_moderation_enabled`,
|
||||
t.`local_moderation_enabled`=c.`local_moderation_enabled`,
|
||||
t.`message_encryption_enabled`=c.`message_encryption_enabled`,
|
||||
t.`default_policy_group_id`=c.`default_policy_group_id`,
|
||||
t.`security_policy_version`=c.`security_policy_version`,
|
||||
t.`global_friend_enabled`=c.`global_friend_enabled`,
|
||||
t.`message_curfew_enabled`=c.`message_curfew_enabled`;
|
||||
@@ -0,0 +1,9 @@
|
||||
-- 第二阶段:新版 manager 与 IM Server 全部发布并验证后执行。
|
||||
-- 清理已废弃的商户配置表和按商户选库字段。
|
||||
|
||||
DROP TABLE `im_tenant_config`;
|
||||
|
||||
ALTER TABLE `im_tenant`
|
||||
DROP INDEX `idx_im_tenant_db_name`,
|
||||
DROP COLUMN `db_name`,
|
||||
DROP COLUMN `db_dsn`;
|
||||
Reference in New Issue
Block a user