Skip to content

初始化数据库

首次安装 Forge Admin 时,需要先运行项目提供的初始化脚本。这个步骤负责创建基础表和系统必需数据,不能只依赖 Admin 启动时的 Flyway 增量迁移。

初始化前确认

执行初始化脚本

新环境规范入口只有 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

脚本会依次完成:

  1. 创建 forge_admin 数据库;数据库已预创建时校正其默认字符集和排序规则
  2. 将数据库和连接统一为 utf8mb4 + utf8mb4_0900_ai_ci
  3. 导入 forge-server/db/全量初始化SQL.sql
  4. 导入 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 服务

相关文档