生产服务器直接改代码致Git拉取受阻,求替代解决方案
生产环境Python文件存储数据的Git冲突问题及解决方案
项目现状
- 项目所有数据以Python代码文件形式存储,统一放在
data目录下,每个文件对应一本图书的信息。例如latin_stories.py中包含text(字典类型)、section(整数类型)、language(字符串类型)等变量,用来存储对应图书的各项属性。 - 已认证用户可通过网页上传指定格式的CSV文件,程序会自动在生产服务器的
data目录中新增或修改对应的Python文件。
核心问题
每次从Git仓库拉取代码变更到生产服务器时,用户在生产环境直接新增或修改的未被Git追踪的Python数据文件,会成为拉取操作的阻碍,导致拉取失败或出现冲突。
背景说明
接手项目时就存在这种设计,明确知道该方案存在缺陷,但现有业务代码完全基于Python文件存储数据的逻辑开发,若改用数据库存储,需要投入大量精力进行重构。推测原开发者因数据库知识储备有限,且初期数据量较小,才采用这种临时可行的方案。
现有解决方案思路
方案1:迁移至数据库存储
彻底替换当前以Python代码文件存储数据的方式,将所有图书信息迁移到数据库中,后续用户上传数据时直接写入数据库。这是从根源解决问题的方案,但需要对现有代码进行大规模重构,时间和人力成本较高。方案2:上传时自动提交Git变更
在用户上传CSV文件、程序完成data目录下Python文件的新增或修改后,自动在生产服务器执行git add .、git commit -m "新增/更新图书数据:[文件名]"、git push系列操作,将数据文件的变更提交到Git仓库。这样后续从仓库拉取变更时,生产环境的所有数据文件都是Git已追踪的,不会再出现未追踪文件阻碍拉取的问题。需要注意配置Git操作的权限、规范提交信息,以及处理可能出现的提交冲突。
内容的提问来源于stack exchange,提问作者janice
相关产品推荐
相关产品推荐

