如何在两个Git仓库中高效复用同一ORM模型?最佳实践解析
问题
我拥有两个访问同一数据库的FastAPI服务:一个是业务正式服务,另一个是用于从不同数据源加载数据的服务。两个服务各有独立的GitHub仓库,但使用相同的SQLAlchemy(.orm) ORM数据模型和Schema。
我的核心需求是:无需同时修改两个代码库,仅在一处修改就能适配数据库变更,彻底消除重复代码。我曾考虑将模型独立为新仓库或自定义库,但不确定最优的导入方式,也担心这么做反而增加额外工作量。
当前项目结构:
Service 1 (业务后端): . ├── app │ ├── __init__.py │ ├── main.py │ └── database │ ├── __init__.py │ ├── ModelItem.py # 示例模型 │ ├── ... # 其他模型 │ ├── SchemaItem.py # 示例Schema │ └── ... # 其他Schema │ ├── routers │ └── ...
Service 2 (数据加载服务): . ├── app │ ├── __init__.py │ ├── main.py │ └── database │ ├── __init__.py │ ├── ModelItem.py # 示例模型 │ ├── ... # 其他模型 │ ├── SchemaItem.py # 示例Schema │ └── ... # 其他Schema │ ├── routers │ └── ...
解决方案
将ORM模型和Schema独立为私有Python包仓库,通过pip在两个服务中安装该包,具体操作参考以下规范:
- 按照《Python项目打包规范》构建包的目录结构
- 参考《私有Python包安装指南》的方法,从私有GitHub仓库安装该包
内容的提问来源于stack exchange,提问作者Jonas Z.
相关产品推荐
相关产品推荐

