优化结构
This commit is contained in:
+22
-5
@@ -3,12 +3,29 @@
|
||||
`data` owns database clients, persistence models, migrations, configuration
|
||||
watching, and repository implementations.
|
||||
|
||||
- `repository/`: system repositories and table persistence
|
||||
- `payment/`: payment configuration and payment-order persistence
|
||||
- `system/`: system repositories and system table persistence
|
||||
- `task/`: timed-task tables and task persistence
|
||||
- `integration/`: `sys_integration_configs` and integration configuration persistence
|
||||
- `payment/`: payment-order persistence
|
||||
- each subpackage owns its Wire `ProviderSet`; the root package only binds the
|
||||
shared `Data` infrastructure and aggregates those sets
|
||||
- root files: shared database lifecycle, runtime clients, integration-config
|
||||
storage, data-scope auditing, and migration orchestration
|
||||
shared `Data` infrastructure and aggregates those sets, mirroring `biz`
|
||||
- root files: shared database lifecycle, runtime clients, configuration
|
||||
orchestration, data-scope auditing, and migration orchestration
|
||||
|
||||
新增数据模块时创建 `internal/data/<module>`,提供 `ProviderSet()` 和
|
||||
`Migrations()`,再在 `internal/modules/<module>/definition.go` 注册迁移与
|
||||
管理面,最后在根 `data.ProviderSet` 中注册该模块。根 `data` 不应直接
|
||||
拥有业务表 PO,也不应让一个模块引用另一个模块的私有 PO。
|
||||
|
||||
Root files intentionally stay in one package because they share `Data` state and
|
||||
reload locks. Do not split them into packages only to reduce file count.
|
||||
|
||||
当前内置数据模块为 `system`、`integration`、`task` 和 `payment`。其中:
|
||||
|
||||
- `system` 只拥有 `sys_*` 系统表、系统仓储、种子和系统维护清理;
|
||||
- `integration` 唯一拥有 `sys_integration_configs` 表模型、配置仓储和通信默认值;
|
||||
- `task` 只拥有定时任务与任务日志表;
|
||||
- `payment` 只拥有 `pay_orders` 等支付持久化,读取集成配置时复用 integration 的表模型。
|
||||
|
||||
配置文件迁移、数据库切换、Redis/Mongo/对象存储重载仍属于根 data 的生命周期编排,
|
||||
不等同于某个业务模块的表仓储。
|
||||
|
||||
Reference in New Issue
Block a user