-- 修复脚本:重建被误删的 sd_deploy_envs + 新建微信通道两张表 -- 注意:原 mysql.ddl.sql 有 xls2ui 生成 bug(DEFAULT ''N'' 双重引号),不能整文件执行 CREATE TABLE IF NOT EXISTS sd_deploy_envs ( `id` VARCHAR(32) NOT NULL comment '主键ID', `project_id` VARCHAR(32) NOT NULL comment '项目ID', `env_type` VARCHAR(20) NOT NULL comment '环境类型', `host` VARCHAR(200) NOT NULL comment 'SSH主机地址', `port` int NOT NULL DEFAULT 22 comment 'SSH端口', `user` VARCHAR(100) NOT NULL comment 'SSH用户', `ssh_key_path` VARCHAR(500) comment 'SSH密钥路径', `sudo_enabled` VARCHAR(1) NOT NULL DEFAULT 'N' comment '免密Sudo', `deploy_path` VARCHAR(500) NOT NULL comment '部署目录', `python_path` VARCHAR(500) comment 'Python路径', `db_host` VARCHAR(200) comment '数据库地址', `db_port` int DEFAULT 3306 comment '数据库端口', `db_name` VARCHAR(100) comment '数据库名', `db_user` VARCHAR(100) comment '数据库用户', `db_password` VARCHAR(500) comment '数据库密码(加密)', `status` VARCHAR(20) NOT NULL DEFAULT 'configured' comment '环境状态', `verified_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '最近验证时间', `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间', `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '更新时间', primary key(id) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci engine=innodb comment '部署环境表'; CREATE INDEX idx_sd_deploy_envs_project ON sd_deploy_envs(project_id); CREATE INDEX idx_sd_deploy_envs_type ON sd_deploy_envs(env_type); CREATE UNIQUE INDEX idx_sd_deploy_envs_unique ON sd_deploy_envs(project_id, env_type); CREATE TABLE IF NOT EXISTS wechat_channel_config ( `id` VARCHAR(32) NOT NULL comment '主键ID', `org_id` VARCHAR(32) NOT NULL comment '机构ID', `name` VARCHAR(200) NOT NULL comment '公众号名称', `appid` VARCHAR(100) NOT NULL comment '公众号AppID', `appsecret` VARCHAR(500) NOT NULL comment '公众号AppSecret(加密)', `token` VARCHAR(200) NOT NULL comment '消息校验Token', `encoding_aes_key` VARCHAR(200) comment '消息加密Key(可选)', `enabled` VARCHAR(1) NOT NULL DEFAULT '1' comment '是否启用(1/0)', `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间', `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '更新时间', primary key(id) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci engine=innodb comment '微信通道配置(机构级公众号)'; CREATE UNIQUE INDEX wechat_channel_config_idx_wcc_org ON wechat_channel_config(org_id); CREATE TABLE IF NOT EXISTS wechat_user_binding ( `id` VARCHAR(32) NOT NULL comment '主键ID', `openid` VARCHAR(100) NOT NULL comment '微信OpenID', `user_id` VARCHAR(32) NOT NULL comment '系统用户ID', `org_id` VARCHAR(32) NOT NULL comment '机构ID', `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间', primary key(id) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci engine=innodb comment '微信用户绑定(openid→系统用户)'; CREATE UNIQUE INDEX wechat_user_binding_idx_wub_openid ON wechat_user_binding(openid); CREATE INDEX wechat_user_binding_idx_wub_user ON wechat_user_binding(user_id);