场景描述 软件项目开发过程中:有测试环境、生产环境 [ol]大家经常在测试环境中,数据库里添加表、添加字段、添加了初始化的数据了上线生产环境时,总是会发现:某个表的字段没有添加,初始化的一个配置表数据没初始化上。 [/ol] 请问大家有什么好的方式:能通知或者记录或者其他形式,来避免这种配置数据呀、表结构呀遗漏的问题呢? 目前通过 Gitlab 实现代码统一管理; 通过 Navicat 中数据库结构的比较,避免表结构的遗漏; 但是仍有一些初始化的数据,在上线后会遗漏。
把大家测试环境 DB 的建表和修改表权限全回收了,然后做个网页工具管理表结构,测试环境生产环境也只有这个工具有权限改,所有变动只能 网页工具=>改测试环境=>改生产环境; 这样就行了; 然后定个规定,私自搭建测试环境 db 罚钱;
我见过的不少 ORM 都有带版本管理的,会自动应用代码库里的 schema 变更。这些 migration 也可以手动升降。比如: https://docs.edgedb.com/get-started/migrations https://hexdocs.pm/ecto_sql/Ecto.Migration.html