From 9e080b175c33ebfb7bbaf17057d24c69d7d7999c Mon Sep 17 00:00:00 2001 From: qianqiuwanzi Date: Thu, 17 Sep 2026 15:51:17 +0800 Subject: [PATCH] =?UTF-8?q?v1.0.51:=20=E4=BF=AE=E5=A4=8Ddb=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E7=A7=8D=E5=AD=90=E6=9C=AA=E7=94=9F=E6=95=88?= =?UTF-8?q?=20-=20MySQL=E5=AE=98=E6=96=B98.0=E9=95=9C=E5=83=8Fentrypoint?= =?UTF-8?q?=E5=A4=84=E7=90=86.sql=E5=9E=8Binitdb=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=97=B6set=20-u=E4=B8=8B=E5=B4=A9($1=20unbound=20variable)?= =?UTF-8?q?=E9=9D=99=E9=BB=98=E5=A4=B1=E8=B4=A5;02=5Fseed=5Fadmin=E6=94=B9?= =?UTF-8?q?.sh+heredoc(=E4=B8=8E01=20schema=E7=9B=B8=E5=90=8C=E7=9A=84?= =?UTF-8?q?=E7=A8=B3=E5=AE=9A=E5=AF=BC=E5=85=A5=E8=B7=AF=E5=BE=84),?= =?UTF-8?q?=E7=A1=AE=E4=BF=9Dadmin/=E8=A7=92=E8=89=B2/=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=A0=87=E8=AE=B0=E8=87=AA=E5=8A=A8=E5=86=99=E5=85=A5;?= =?UTF-8?q?=E6=AD=A4=E5=89=8D=E4=BB=85=E6=89=8B=E5=8A=A8=E8=A1=A5=E8=B7=91?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Code --- deploy/docker-compose.yml | 2 +- .../{02_seed_admin.sql => 02_seed_admin.sh} | 21 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) rename deploy/mysql/initdb/{02_seed_admin.sql => 02_seed_admin.sh} (69%) diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index aeedbd2..a8dd553 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -21,7 +21,7 @@ services: volumes: - db_data:/var/lib/mysql - ./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) - ../:/repo # 仓库根目录挂到 /repo,init 脚本 source 仓库 sql - ../sql:/repo/sql:ro diff --git a/deploy/mysql/initdb/02_seed_admin.sql b/deploy/mysql/initdb/02_seed_admin.sh similarity index 69% rename from deploy/mysql/initdb/02_seed_admin.sql rename to deploy/mysql/initdb/02_seed_admin.sh index 58ba371..dad1a66 100644 --- a/deploy/mysql/initdb/02_seed_admin.sql +++ b/deploy/mysql/initdb/02_seed_admin.sh @@ -1,12 +1,12 @@ --- ============================================================ --- SuperLink 首次初始化:种子超管角色 + 管理员账号 + 迁移版本标记 --- 由 mysql 镜像 entrypoint 在空数据卷时执行;entrypoint 已自动 USE ${MYSQL_DATABASE} --- 说明: --- - base schema(v1.0.51_base) 已内建 v1.0.16→v1.0.51 的全部业务表, --- 故在此把各迁移文件标记为"已应用",避免 tools/migrate.php up 重复执行。 --- - 管理员账号:admin / Admin@123456(bcrypt 密码,请在首次登录后立即修改) --- ============================================================ +#!/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 @@ -37,4 +37,7 @@ INSERT INTO `schema_versions` (`version`, `checksum`) VALUES ('v1.0.48','f507f2964d9bf7f8c885d69119c6d041'), ('v1.0.50','edaa2a71a4adf716591ece61ed9fc09f'), ('v1.0.51','3251bf0bca9236e201dc419770f7f5dc') -ON DUPLICATE KEY UPDATE `checksum` = VALUES(`checksum`); \ No newline at end of file +ON DUPLICATE KEY UPDATE `checksum` = VALUES(`checksum`); +EOSQL + +echo ">> SuperLink init: admin + roles + versions seeded" \ No newline at end of file