refactor(install): 种子退役,migrate:run 一条命令完成建表与初始数据

新增 InitDataAlignService 六域对齐(超管/角色/权限节点/配置/快捷入口/商城演示)与 20260909130000 迁移;SystemAdmin 快照以字面量哈希入库;删除种子三件与安装锁依赖,seeds 目录留 .gitkeep;README/tests/规则等 11 处说明同步。

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
augushong
2026-09-09 14:38:10 +00:00
parent e54c772868
commit 553047025c
18 changed files with 371 additions and 242 deletions

View File

@@ -2,10 +2,10 @@
/**
* 测试数据库初始化脚本(参数化版).
*
* 在与 .env 同实例的 MySQL 上建出 ulthon_admin_test 库,并初始化全部表:
* 1. migrate:run 建系统/框架表(database/migrations/,如 ul_system_admin / ul_system_menu)
* 在与 .env 同实例的 MySQL 上建出 ulthon_admin_test 库,并初始化全部表与初始数据:
* 1. migrate:run 建系统/框架表(database/migrations/,如 ul_system_admin / ul_system_menu),
* 并写入全部初始数据(超管、配置、菜单等,数据迁移随迁移一同执行)
* 2. scheme:sync 建业务表(app/admin/scheme/)
* 3. seed:run 插入最小参考数据(database/seeds/InitBaseAdminData)
*
* 与 wkbox 衍生项目的区别:
* - 完全参数化:连接参数(hostname/hostport/username/password/charset/prefix/database)
@@ -19,7 +19,7 @@
* 都无法覆盖已存在的 .env 键,唯一可靠覆盖点是 config 级。
* - think\Config::set 的第二参数只支持单段一级名,不能传 'database.connections.main'。
*
* 幂等:migrate:run / scheme:sync / seed:run 均可安全重复执行(详见 README)。
* 幂等:migrate:run / scheme:sync 均可安全重复执行(详见 README)。
*/
declare(strict_types=1);
@@ -135,12 +135,10 @@ if (!is_string($resolvedDb) || stripos($resolvedDb, 'test') === false) {
// scheme:sync 在非 TTY 下不带它会被 parent::confirm 抛 "Aborted"。
// ----------------------------------------------------------------------------
$commands = [
// 系统/框架表(Phinx 迁移):ul_system_admin / ul_system_menu / ul_system_auth_node / ul_system_config / ...
['migrate:run', '系统/框架表(database/migrations/)'],
// 系统/框架表 + 全部初始数据(Phinx 迁移):ul_system_admin / ul_system_menu / ul_system_config / ...
['migrate:run', '系统/框架表 + 初始数据(database/migrations/)'],
// 业务表(Scheme 同步):app/admin/scheme/ 下声明的表
['scheme:sync', '业务表(app/admin/scheme/)'],
// 参考数据(seed):InitBaseAdminData,自带 install-lock 跳过,可安全重跑
['seed:run', '参考数据(database/seeds/)'],
];
$handleProp = (new \ReflectionProperty(\think\console\Output::class, 'handle'));