feat: 应用规范补充模块完整导入清单(build.sh 一键部署 8 步)

git pull + pip install + wwwroot 软链 + i18n 合并 + json2ddl 建表 + xls2ui CRUD + init_data 初始化数据 + load_module 挂载
This commit is contained in:
yumoqing 2026-08-22 16:40:37 +08:00
parent bde08ea889
commit f28e39e0b3

View File

@ -89,7 +89,18 @@ if __name__ == '__main__':
webapp(init)
```
> **业务模块如何导入到应用(关键)**:一个应用 = 一个入口(`app/${appname}.py`= 一个端口。业务模块organization/payroll/recruitment/...)是 Python 包,通过各自的 `load_{module}()``init()` 里逐个加载,**挂在应用这个唯一入口下**。不要给每个模块单独建 `app.py`、单独占端口、单独起服务——模块不是独立部署单元,应用才是。
> **应用对模块的完整导入关键build.sh 一键部署必须覆盖)**:一个应用 = 一个入口(`app/${appname}.py`= 一个端口。业务模块organization/payroll/recruitment/...)是 Python 包,不是独立服务。应用通过 build.sh 把各模块完整集成进来,步骤如下:
>
> 1. **代码导入git pull**:模块从 git clone 到 `pkgs/{模块名}/`(基础包 apppublic/sqlor/ahserver/rbac/xls2ddl/appbase/bricks 同)。禁止手动复制源码。
> 2. **依赖安装pip install**`pip install -e pkgs/{模块名}`(或 `pip install`)安装所有模块;无 pyproject.toml 的用 PYTHONPATH。
> 3. **前端链接wwwroot 软链)**`ln -sf ../pkgs/{模块名}/wwwroot wwwroot/{模块名}`(软链接非 cp保持同步
> 4. **i18n 导入**merge_i18n.py 合并各模块 `i18n/{zh,en}/msg.txt``wwwroot/i18n/{lang}/i18n.json`i18n_getmsgs.dspy 供 bricks.js 读取)。
> 5. **建表DDL**json2ddl 从模块 `models/*.json` 生成 `mysql.ddl.sql`,执行建表。
> 6. **CRUD 生成**xls2ui 从模块 `json/*.json` 生成 CRUD.dspy + .ui
> 7. **初始化数据**`python scripts/init_data.py` 导入模块 `init/data.json`appcodes 等种子数据)。
> 8. **运行挂载load_{module}()**:应用 `app/{appname}.py``init()` 里逐个 `load_{module}()`(见上)。
>
> 不要给每个模块单独建 `app.py`、单独占端口、单独起服务——模块不是独立部署单元,应用才是。以上 8 步是应用一键部署正确执行的完整清单,缺一不可。
### conf/config.json (Configuration)
Must include the following sections: