v1.0.51: 修复db初始化种子未生效 - MySQL官方8.0镜像entrypoint处理.sql型initdb文件时set -u下崩($1 unbound variable)静默失败;02_seed_admin改.sh+heredoc(与01 schema相同的稳定导入路径),确保admin/角色/版本标记自动写入;此前仅手动补跑数据库
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -21,7 +21,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- db_data:/var/lib/mysql
|
- db_data:/var/lib/mysql
|
||||||
- ./mysql/initdb/01_schema_base.sh:/docker-entrypoint-initdb.d/01_schema_base.sh:ro
|
- ./mysql/initdb/01_schema_base.sh:/docker-entrypoint-initdb.d/01_schema_base.sh:ro
|
||||||
- ./mysql/initdb/02_seed_admin.sql:/docker-entrypoint-initdb.d/99_seed_admin.sql:ro
|
- ./mysql/initdb/02_seed_admin.sh:/docker-entrypoint-initdb.d/99_seed_admin.sh:ro
|
||||||
# 说明:compose 相对路径以 deploy/ 为基准,../ 即仓库根目录(SuperLink)
|
# 说明:compose 相对路径以 deploy/ 为基准,../ 即仓库根目录(SuperLink)
|
||||||
- ../:/repo # 仓库根目录挂到 /repo,init 脚本 source 仓库 sql
|
- ../:/repo # 仓库根目录挂到 /repo,init 脚本 source 仓库 sql
|
||||||
- ../sql:/repo/sql:ro
|
- ../sql:/repo/sql:ro
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
-- ============================================================
|
#!/bin/bash
|
||||||
-- SuperLink 首次初始化:种子超管角色 + 管理员账号 + 迁移版本标记
|
# SuperLink 首次初始化:种子超管角色 + 管理员账号 + 迁移版本标记
|
||||||
-- 由 mysql 镜像 entrypoint 在空数据卷时执行;entrypoint 已自动 USE ${MYSQL_DATABASE}
|
# 采用 .sh + heredoc 方式执行(不用 .sql):
|
||||||
-- 说明:
|
# MySQL 官方 image 的 entrypoint 处理 .sql 型 init 文件时在 set -u 下会触发
|
||||||
-- - base schema(v1.0.51_base) 已内建 v1.0.16→v1.0.51 的全部业务表,
|
# "line 249: $1: unbound variable" 而静默失败;.sh 型文件则稳定无误。
|
||||||
-- 故在此把各迁移文件标记为"已应用",避免 tools/migrate.php up 重复执行。
|
# 管理员账号:admin / Admin@123456(bcrypt,建议首次登录后立即修改)
|
||||||
-- - 管理员账号:admin / Admin@123456(bcrypt 密码,请在首次登录后立即修改)
|
set -euo pipefail
|
||||||
-- ============================================================
|
|
||||||
|
|
||||||
|
mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" --default-character-set=utf8mb4 "${MYSQL_DATABASE}" <<'EOSQL'
|
||||||
-- 1) 超级管理员角色:权限 = 全部业务模块(与前端菜单标识一致)
|
-- 1) 超级管理员角色:权限 = 全部业务模块(与前端菜单标识一致)
|
||||||
INSERT INTO `system_roles` (`role_name`, `permissions`, `is_active`)
|
INSERT INTO `system_roles` (`role_name`, `permissions`, `is_active`)
|
||||||
SELECT '超级管理员', '["dashboard","company","person","media","need","marketing","channel","document","preliminary","system","log"]', 1
|
SELECT '超级管理员', '["dashboard","company","person","media","need","marketing","channel","document","preliminary","system","log"]', 1
|
||||||
@@ -37,4 +37,7 @@ INSERT INTO `schema_versions` (`version`, `checksum`) VALUES
|
|||||||
('v1.0.48','f507f2964d9bf7f8c885d69119c6d041'),
|
('v1.0.48','f507f2964d9bf7f8c885d69119c6d041'),
|
||||||
('v1.0.50','edaa2a71a4adf716591ece61ed9fc09f'),
|
('v1.0.50','edaa2a71a4adf716591ece61ed9fc09f'),
|
||||||
('v1.0.51','3251bf0bca9236e201dc419770f7f5dc')
|
('v1.0.51','3251bf0bca9236e201dc419770f7f5dc')
|
||||||
ON DUPLICATE KEY UPDATE `checksum` = VALUES(`checksum`);
|
ON DUPLICATE KEY UPDATE `checksum` = VALUES(`checksum`);
|
||||||
|
EOSQL
|
||||||
|
|
||||||
|
echo ">> SuperLink init: admin + roles + versions seeded"
|
||||||
Reference in New Issue
Block a user