5ddad0c5e5
目标:git clone 后 docker compose up -d 直接可用,无需任何手工准备。
变更:
- config.example/ → config/,config.example.yaml → config.yaml
不再需要 cp -r 与逐份修改
- 删除 .env / .env.example,值全部内置到 docker-compose.yml
(GoFrame 不展开配置文件中的 ${VAR},环境变量方案在 Go 侧不可用)
- 配置文件里的 ${VAR} 全部替换为字面默认值
- schema/04-users.sh 与 05-reset-passwords.sh 改为脚本内字面口令,
不再读取环境变量
- 新增 schema/13-seed-flow-package.sql 占位文件,说明套餐表为空的原因与补齐方式
- .gitignore 不再排除 config/ 与 .env(已无 .env)
- README 改为「一键启动」+「上线前必改」两张表
已验证:docker compose config 通过;compose 口令、各配置文件 DSN、
初始化脚本三处口令哈希一致;库名与 schema 中一致。
60 lines
1.8 KiB
Bash
Executable File
60 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================
|
|
# 重置种子账号口令(由 MySQL 容器 initdb 自动执行)
|
|
#
|
|
# 01-schema.sql 里的密码哈希源自旧库,不能用于分发。
|
|
# 这里统一重算,登录后请逐个修改。
|
|
#
|
|
# 哈希算法(见 iotlcm-admin-svr server/internal/library/utils/utils.go):
|
|
# md5( hex(md5(明文)) + md5(salt) )
|
|
# salt 取自每行 sys_user.salt 列。
|
|
#
|
|
# 口令直接写在本文件(不使用环境变量)。
|
|
# 改口令时必须同时修改以下两处:
|
|
# 1. docker-compose.yml 的 MYSQL_ADMIN_PASSWORD
|
|
# 2. 本文件下方的 ADMIN_PASSWORD
|
|
# ============================================================
|
|
set -euo pipefail
|
|
|
|
ADMIN_PASSWORD='Iotlcm2026Default'
|
|
ROOT_PASSWORD='Iotlcm2026Default'
|
|
DB_NAME='db_iotlcm'
|
|
|
|
PWD_MD5=$(printf '%s' "$ADMIN_PASSWORD" | md5sum | awk '{print $1}')
|
|
|
|
mysql --protocol=socket -uroot -p"${ROOT_PASSWORD}" <<SQL
|
|
SET NAMES utf8mb4;
|
|
USE \`${DB_NAME}\`;
|
|
|
|
DROP PROCEDURE IF EXISTS sp_reset_all_passwords;
|
|
DELIMITER \$\$
|
|
CREATE PROCEDURE sp_reset_all_passwords()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE v_id BIGINT;
|
|
DECLARE v_salt VARCHAR(64);
|
|
DECLARE v_salt_md5 VARCHAR(64);
|
|
DECLARE v_final VARCHAR(64);
|
|
DECLARE cur CURSOR FOR SELECT user_id, salt FROM sys_user;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
|
|
|
|
OPEN cur;
|
|
read_loop: LOOP
|
|
FETCH cur INTO v_id, v_salt;
|
|
IF done THEN
|
|
LEAVE read_loop;
|
|
END IF;
|
|
SET v_salt_md5 = MD5(v_salt);
|
|
SET v_final = MD5(CONCAT('${PWD_MD5}', v_salt_md5));
|
|
UPDATE sys_user SET password = v_final WHERE user_id = v_id;
|
|
END LOOP;
|
|
CLOSE cur;
|
|
END\$\$
|
|
DELIMITER ;
|
|
|
|
CALL sp_reset_all_passwords();
|
|
DROP PROCEDURE sp_reset_all_passwords;
|
|
SQL
|
|
|
|
echo "[initdb] 种子账号口令已统一重置"
|