软件管理:通过什么方式能保障测试环境与生产环境:表结构、表的初始化数据一致?

88 天前
 yiyiniu

场景描述

软件项目开发过程中:有测试环境、生产环境

  1. 大家经常在测试环境中,数据库里添加表、添加字段、添加了初始化的数据了
  2. 上线生产环境时,总是会发现:某个表的字段没有添加,初始化的一个配置表数据没初始化上。

请问大家有什么好的方式:能通知或者记录或者其他形式,来避免这种配置数据呀、表结构呀遗漏的问题呢?

目前通过 Gitlab 实现代码统一管理; 通过 Navicat 中数据库结构的比较,避免表结构的遗漏; 但是仍有一些初始化的数据,在上线后会遗漏。

3457 次点击
所在节点    程序员
45 条回复
wu67
88 天前
不要让开发直接改数据库. 让他写好 sql / script 后 找 运维/数据库管理员 执行操作.
sunhelter
88 天前
CodeFirst 迁移结构至数据库,这不是 ORM 必须标配的功能嘛
dododada
88 天前
3 楼就是标准方法,账号密码统一收口,所有操作界面化,日志化,可审计可追溯可回滚
RandomJoke
88 天前
既然你们已经通过 gitlab 管理了,说明你们可能没有专门的 DBA ,那不如直接 flyway 么,代码记录脚本,数据库记录执行情况
BiChengfei
88 天前
再给开发搭建一个开发环境啊。在测试改表,是因为本地项目只有接口,不好测试验证,测试环境有页面,点点点比较舒服
说扣钱的我服了
ilaipi
88 天前
这种情况就得老老实实写 migration
Breacher
88 天前
这个过程叫做 DB migration, 有很多工具可以做这个事情,比如 go-migrate, Flyway 等。将这件事情集成到 CD 就不会出现忘记加表或者字段了。
liuhuansir
88 天前
难道不是开发环境、测试环境、预发布环境、生产环境,四套么?开发环境,开发人员随便折腾,其他三个环境,开发没权限
luozic
88 天前
三楼这种看起来不方便,但是你项目多,or 维护久了 就知道笨方法比瞎鸡儿整还节约时间,避免莫名其妙的问题
luozic
88 天前
毕竟三楼这种时间是可以放入计划的,但是瞎整,查莫名其妙问题的时候,哪时间就完全拼人品
6167
88 天前
python, flask, flask-migrate 非常好用。可以同步表结构,upgrade 或 downgrade
顺便点赞 20 楼,我隔壁也是这个死性子 @sampeng
8355
88 天前
预发布环境充分测试。。。
这个问题跟通过什么方式能保证生产环境无 bug 一样,是人的问题。
chendl111
88 天前
不保证环境一致,有关键字段添加则通知生产方
chendl111
88 天前
@chendl111 #33 字段更新有专门的 OA 管理
Vtwoguest
88 天前
>数据库里添加表、添加字段、添加了初始化的数据
不好意思 大家加了表或者字段没有任何设计资料吗? Sql 设计书、性能测试书、表说明书、DDL 等等
MangoFlavor
88 天前
这是人的问题,
coderzhangsan
88 天前
楼主反馈的问题是部署流程管理的问题,流程执行和把关不严;有运维或 dba 的情况下,开发人员不要操作数据库,数据库不是代码,不适合做 CI/CD ,由专业人员操作比较合适,如果没有,那就是你们技术主管的职责,毕竟部署环节缺失字段,顶多是短时间影响业务,而数据库误操作那可能就要祭天了。
mark2025
88 天前
所有建表 DDL 纳入 git 版本管理
任何表结构变动必须在版本管理中有提交记录
dddd1919
88 天前
关键词:DDL 、DML
搜索技术栈的具体实现,分别用来管理数据库结构变更和关键数据变更,保证各环境的数据一致
除了工具,还要有完善的运作机制,保障公用的测试以及生产库变更全部走 DDL 或 DML
lasuar
88 天前
测试环境 没有必要和生产环境严格一致。测试环境存有单独用于测试的表或字段,上线的表结构改动添加到代码中就行了,比如建个目录 ddl_history 保存 20240808.sql ,如果连这个都忘记写,那就是人的问题了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX