This commit is contained in:
2026-10-26 22:01:41 +08:00
parent fd5e1c5606
commit 6f13816bcf
3 changed files with 63 additions and 6 deletions
+6 -6
View File
@@ -5,12 +5,12 @@ server:
mysql: mysql:
# MySQL 独立配置项;敏感信息通过环境变量注入,禁止硬编码。 # MySQL 独立配置项;敏感信息通过环境变量注入,禁止硬编码。
host: "${DB_HOST:-127.0.0.1}" host: 124.222.13.236
port: "${DB_PORT:-3306}" port: 3306
user: "${DB_USER}" user: dev
password: "${DB_PASSWORD}" password: JsfiJaWNM7dwREZa
database: "${DB_DATABASE}" database: dev
charset: "${DB_CHARSET:-utf8mb4}" charset: utf8mb4
parse_time: "${DB_PARSE_TIME:-True}" parse_time: "${DB_PARSE_TIME:-True}"
loc: "${DB_LOC:-Local}" loc: "${DB_LOC:-Local}"
# 连接池 # 连接池
+18
View File
@@ -54,3 +54,21 @@ CREATE TABLE IF NOT EXISTS `admin_role_permissions` (
PRIMARY KEY (`role_id`, `permission_id`), PRIMARY KEY (`role_id`, `permission_id`),
KEY `idx_admin_role_permissions_perm` (`permission_id`) KEY `idx_admin_role_permissions_perm` (`permission_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ---------------------------------------------------------------------------
-- 种子数据:超级管理员角色与首个管理员账号。
-- 与服务启动时 rbac.Provider.Seed 逻辑一致,供纯 SQL 初始化使用;
-- 采用 ON DUPLICATE KEY UPDATE 保证可重复执行(重复执行仅刷新,不报错)。
-- 密码 admin123 已按 bcrypt.DefaultCost 预哈希(与 internal/pkg/auth 一致)。
-- ---------------------------------------------------------------------------
INSERT INTO `admin_roles` (`id`, `code`, `name`, `description`, `status`, `created_at`, `updated_at`)
VALUES (1, 'super_admin', '超级管理员', '系统内置超级管理员角色,拥有全部权限', 1, NOW(3), NOW(3))
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `description` = VALUES(`description`);
INSERT INTO `admin_users` (`id`, `username`, `password_hash`, `nickname`, `status`, `created_at`, `updated_at`)
VALUES (1, 'admin', '$2a$10$hk/mJdUR86eyOrMuy7LGIOATNIbqZa3aw6hJAE/4f5MjP9pU5vjIe', '超级管理员', 1, NOW(3), NOW(3))
ON DUPLICATE KEY UPDATE `password_hash` = VALUES(`password_hash`), `status` = VALUES(`status`), `nickname` = VALUES(`nickname`);
INSERT INTO `admin_user_roles` (`admin_id`, `role_id`)
VALUES (1, 1)
ON DUPLICATE KEY UPDATE `role_id` = VALUES(`role_id`);
+39
View File
@@ -0,0 +1,39 @@
-- 小程序管理 & 小程序用户建表脚本(mini_ / users 前缀,与后台 RBAC 物理隔离)。
-- 执行顺序:先建表,再建索引(GORM 已含唯一/普通索引定义,此处显式列出便于审阅)。
-- 表结构与 internal/model/miniapp.go、internal/model/user.go 保持一致。
-- 被后台纳管的小程序配置,AppID 全局唯一。
-- DeletedAt 为 GORM 软删除字段,已建普通索引以支持软删除过滤。
CREATE TABLE IF NOT EXISTS `mini_programs` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(128) NOT NULL,
`description` VARCHAR(512) DEFAULT '',
`app_id` VARCHAR(64) NOT NULL,
`app_secret` VARCHAR(128) NOT NULL,
`status` TINYINT NOT NULL DEFAULT 1,
`ext` TEXT,
`created_at` DATETIME(3) NULL,
`updated_at` DATETIME(3) NULL,
`deleted_at` DATETIME(3) NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_mini_programs_app_id` (`app_id`),
KEY `idx_mini_programs_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 小程序端用户。mini_id 关联被纳管小程序(mini_programs.id),
-- 与 open_id 共同唯一标识一个用户;查询统一按 (mini_id, openid) 索引过滤。
-- union_id 建普通索引便于跨小程序去重/聚合。
CREATE TABLE IF NOT EXISTS `users` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`mini_id` BIGINT UNSIGNED NOT NULL,
`openid` VARCHAR(64) NOT NULL,
`union_id` VARCHAR(64) DEFAULT '',
`nickname` VARCHAR(128) DEFAULT '',
`avatar` VARCHAR(512) DEFAULT '',
`status` TINYINT NOT NULL DEFAULT 1,
`created_at` DATETIME(3) NULL,
`updated_at` DATETIME(3) NULL,
PRIMARY KEY (`id`),
KEY `idx_users_mini_openid` (`mini_id`, `openid`),
KEY `idx_users_union_id` (`union_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;