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

查看 289|回复 19
作者:yiyiniu   
场景描述
软件项目开发过程中:有测试环境、生产环境
[ol]
  • 大家经常在测试环境中,数据库里添加表、添加字段、添加了初始化的数据了
  • 上线生产环境时,总是会发现:某个表的字段没有添加,初始化的一个配置表数据没初始化上。
    [/ol]
    请问大家有什么好的方式:能通知或者记录或者其他形式,来避免这种配置数据呀、表结构呀遗漏的问题呢?
    目前通过 Gitlab 实现代码统一管理;
    通过 Navicat 中数据库结构的比较,避免表结构的遗漏;
    但是仍有一些初始化的数据,在上线后会遗漏。
  • t298   
    Flyway?
    jmllx1963   
    https://www.bytebase.com
    forvvvv123   
    把大家测试环境 DB 的建表和修改表权限全回收了,然后做个网页工具管理表结构,测试环境生产环境也只有这个工具有权限改,所有变动只能 网页工具=>改测试环境=>改生产环境; 这样就行了;
    然后定个规定,私自搭建测试环境 db 罚钱;
    linjian   
    liquibase
    InkStone   
    赞同三楼,这种一致性需要流程保障
    Morii   
    alter table 以及 create table 的操作都要放到 migrate 脚本里,并且准备好执行失败的回滚脚本
    pangdundun996   
    ddl 也作为交付物放到 git 中管理起来,标准化需求上线 checklist
    Mystery0   
    上生产谁的 sql 出问题就扣钱,执行一段时间之后,开发人员自己会想办法做一个流程来避免问题
    fds   
    我见过的不少 ORM 都有带版本管理的,会自动应用代码库里的 schema 变更。这些 migration 也可以手动升降。比如:
    https://docs.edgedb.com/get-started/migrations
    https://hexdocs.pm/ecto_sql/Ecto.Migration.html
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部