初始化数据库
首次安装 Forge Admin 时,需要先运行项目提供的初始化脚本。这个步骤负责创建基础表和系统必需数据,不能只依赖 Admin 启动时的 Flyway 增量迁移。
初始化前确认
- 已完成 MySQL 与 Redis 准备,MySQL 版本为 8.0+
- 已完成 获取源码与分支说明
- 本机可以执行
mysql --version - 目标数据库是新库或空库;已有业务数据的数据库不要重复执行全量初始化
执行初始化脚本
新环境规范入口只有 forge-server/scripts/db/init-db.sh。在项目根目录执行:
bash
bash forge-server/scripts/db/init-db.sh \
--host 127.0.0.1 \
--port 3306 \
--database forge_admin \
--user root \
--password your_password脚本会创建数据库(或校正已有空库的默认字符集),统一为 utf8mb4 + utf8mb4_0900_ai_ci,然后导入全量 SQL 和 db/seed/required/。不要再手工导入一次全量 SQL。
如需演示数据,首次初始化用下面的命令替代上一条,不要先后执行两次:
bash
bash forge-server/scripts/db/init-db.sh \
--database forge_admin \
--user root \
--password your_password \
--with-demo脚本会依次完成:
- 创建
forge_admin数据库;数据库已预创建时校正其默认字符集和排序规则 - 将数据库和连接统一为
utf8mb4+utf8mb4_0900_ai_ci - 导入
forge-server/db/全量初始化SQL.sql - 导入
forge-server/db/seed/required/下的必需种子数据
不要重复初始化
init-db.sh 已经导入全量初始化 SQL。不要再手工导入一次。已有业务数据必须先备份,不建议重跑全量脚本。
验证初始化结果
登录 MySQL 后执行:
sql
SHOW CREATE DATABASE forge_admin;
USE forge_admin;
SHOW TABLES LIKE 'sys_user';
SHOW TABLES LIKE 'sys_resource';SHOW CREATE DATABASE 应显示 utf8mb4_0900_ai_ci,两个基础表都应存在。
Flyway 的职责
完成基础初始化后再启动 Admin 服务。Admin 默认启用 Flyway,它会执行 forge-server/db/migration/ 中尚未记录的增量迁移,并在 forge_schema_history 表中保存执行历史。
Flyway 不替代本页的全量初始化步骤,也不要手工逐个执行迁移目录中的 SQL。
历史库与 Collation
- 新环境:MySQL 8.0+,库、连接和活动初始化 SQL 统一
utf8mb4+utf8mb4_0900_ai_ci - 历史库改排序规则属于 DBA 操作,先备份,文档不提供无条件破坏性
ALTER/CONVERT - Collation 混用、Flyway checksum 失败见规范页 START-DB-COLLATION-MIXED
下一步
继续 配置 Admin 服务。
