Files

43 lines
2.2 KiB
Bash
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.
#!/bin/bash
# SuperLink 首次初始化:种子超管角色 + 管理员账号 + 迁移版本标记
# 采用 .sh + heredoc 方式执行(不用 .sql):
# MySQL 官方 image 的 entrypoint 处理 .sql 型 init 文件时在 set -u 下会触发
# "line 249: $1: unbound variable" 而静默失败;.sh 型文件则稳定无误。
# 管理员账号:admin / Admin@123456(bcrypt,建议首次登录后立即修改)
set -euo pipefail
mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" --default-character-set=utf8mb4 "${MYSQL_DATABASE}" <<'EOSQL'
-- 1) 超级管理员角色:权限 = 全部业务模块(与前端菜单标识一致)
INSERT INTO `system_roles` (`role_name`, `permissions`, `is_active`)
SELECT '超级管理员', '["dashboard","company","person","media","need","marketing","channel","document","preliminary","system","log"]', 1
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `system_roles` WHERE `role_name` = '超级管理员');
-- 2) 管理员账号(bcrypt,Admin@123456)
INSERT INTO `system_users` (`username`, `password`, `real_name`, `role_id`, `is_active`)
SELECT 'admin',
'$2y$10$1nNvyQx/fVtrPHOkFTUwV.HNbWFkea75Cx3ICil.9BnoJpCrSAeCm',
'管理员',
(SELECT `id` FROM `system_roles` WHERE `role_name` = '超级管理员' LIMIT 1),
1
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `system_users` WHERE `username` = 'admin');
-- 3) 迁移版本标记(version 去掉 migration_ 前缀,checksum = 迁移文件 md5)
INSERT INTO `schema_versions` (`version`, `checksum`) VALUES
('v1.0.16','73e9594d7ab151791c4ba315e5e87156'),
('v1.0.18','cdfd4eb98e92047c2aa35325908e6f2e'),
('v1.0.20','860b09d92e810620b3bd71d126833611'),
('v1.0.25','c6b545a9dfe0bff7aad8b94849785135'),
('v1.0.27','f1db249ac23697a4981559436306f542'),
('v1.0.30','8faa7dccea9c361d0b8fe4e0c11384f3'),
('v1.0.40','70b9cedf240555bca58f46148c0d380e'),
('v1.0.41','247b6bc7718b9f1d7d5ea28ed9b8a3e2'),
('v1.0.47','10b64a2551e7eb8f1f5bdc8e87c6c06a'),
('v1.0.48','f507f2964d9bf7f8c885d69119c6d041'),
('v1.0.50','edaa2a71a4adf716591ece61ed9fc09f'),
('v1.0.51','3251bf0bca9236e201dc419770f7f5dc')
ON DUPLICATE KEY UPDATE `checksum` = VALUES(`checksum`);
EOSQL
echo ">> SuperLink init: admin + roles + versions seeded"