Files
xxk-proxy/java/sql/mysql/xxk_member_proxy_nullable_upgrade.sql
2026-06-11 10:31:24 +08:00

42 lines
1.7 KiB
SQL

-- 会员代理业务 user_id 兼容升级脚本
-- 说明:
-- 1. 当前代理业务表最初按 sys_user 体系设计,user_id 为 NOT NULL。
-- 2. 会员体系接入后,会员侧业务主要依赖 member_user_id,很多写入场景不会再写 user_id。
-- 3. 因此需要将相关表的 user_id 调整为可空,避免会员新增、会员下单、钱包、静态/动态资源落库时报错。
ALTER TABLE `xxk_wallet_account`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_wallet_flow`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_proxy_order`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_proxy_order_item`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_static_proxy_asset`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_static_proxy_whitelist`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_dynamic_channel`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_dynamic_channel_traffic_log`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
ALTER TABLE `xxk_dynamic_proxy_generate_log`
MODIFY COLUMN `user_id` BIGINT NULL COMMENT '用户ID';
-- 会员钱包账户应保持 member_user_id 唯一,避免同一会员生成多条钱包账户
ALTER TABLE `xxk_wallet_account`
DROP INDEX `idx_xxk_wallet_account_member_user_id`,
ADD UNIQUE INDEX `uk_xxk_wallet_account_member_user_id` (`member_user_id`);
-- 会员白名单也应按 member_user_id + whitelist_ip 去重
ALTER TABLE `xxk_static_proxy_whitelist`
ADD UNIQUE INDEX `uk_member_whitelist_ip` (`member_user_id`, `whitelist_ip`);