我们如何同步在多个项目存储库之间共享的数据库模式?

How can we sync a database schema that is shared between multiple projects repositories?

我们有多个项目依赖的数据库模式。这些项目存储在 github 个存储库中。

举个例子,我们有一个用户模式存在于项目 A 和 B 中,项目 A 由客户使用,项目 B 是我们的数据管理后台:

{
id: string
name: string
}

开发人员在项目 A 上添加了一个 age 属性。因此架构变为

{
id: string
name: string
age: number
}

我们确信此更改也必须反映在项目 B 中,因为我们必须能够在我们的后台管理用户的年龄,因此开发人员还必须手动复制(提交、推送和打开 PR)这个属性 进入项目 B 的 repo。

我们遇到的问题是,当开发人员更新其中一个项目的架构时,相同的更改也必须反映在其他存储库中。手动将这些更改复制到其他存储库可能会成为一项艰巨的任务。

你能建议一种在多个存储库之间同步文件的方法吗?你知道这些模式也有依赖关系(主要是嵌套的 MongoDB 模式),这些依赖关系也应该在其他存储库之间共享吗?

我们考虑的备选解决方案之一是:

  1. 为共享模式构建微服务,以便每个模式甚至文件都与 它可以集中在一个项目中
  2. 创建一个脚本来跟踪共享模式的变化并同步存储库,但这可能很复杂,因为脚本必须检测共享模式文件中的任何依赖关系

除了在存储库之间同步文件之外,我们愿意接受其他建议。

在路的尽头,我们刚刚将两个后端合并到一个单一的应用程序中。