在Flyway和GIT工作的多个开发人员

时间:2018-03-02 05:23:25

标签: flyway

我有一个关于使用Git在Flyway上工作的问题。
如何组织工作?

2开发人员可以创建新的SQL版本但是在Git上我认为应该有一个版本的代码来查看所有更改。 我的意思是当我创建VBA代码时,我只向Git推送一个工作簿,并且在推送新版本时所有更改都会更新。

飞路和创建多个文件怎么样?

怎么做? 请帮忙, 杰西克

1 个答案:

答案 0 :(得分:1)

使用git通常意味着跨开发人员使用不同的分支

只要每个开发人员都在处理个人分支,您就不会遇到任何“看到所有更改”的问题(从此类开发人员的角度来看)。

但是,如果这些不同的开发人员将他们(可能不同的)flyway迁移应用于同一个数据库模式,您将遇到问题。在这种情况下,您可以在应用flyway migrations之前删除架构,也可以为每个开发人员使用单独的数据库实例。

现在请记住flyway正在使用migrations来表示将形成最终架构(或数据库内容)的更改序列。 migrations flyway只是文件(带有sql代码或java类的文本文件)。有关详细信息,请参阅flyway documentation

如果您正在查看单个分支,例如如果合并各种(远程)副本或其他分支,您将遇到以下情况:

  1. 新迁移(又名新文件)
    此类文件将添加到目标分支上的migrations总集中。主要问题是确保(使用正确的命名约定)新migrationmigrations序列中的适当位置执行。
  2. 修改现有迁移(又名更改为文件)
    合并后,修改是文件的一部分,因此对该分支的用户可见。
  3. 已删除的迁移 这里修改在合并后立即对目标分支可见。
  4. 在任何情况下(无论您是将整套迁移保留为单个文件(不推荐!)还是作为一组文件(可能分布在各种文件夹中),都会有一个确切版本的“当前“给定分支的迁移状态。

    修改

    根据您的其他信息考虑以下示例:

    分支b1具有以下迁移:

    • 03.02.12__creating table.sql
    • 05.02.12__改变表

    分支b2有: - 04.02.12__添加专栏。

    将两个分支合并到主分支后,您将以:

    结束
    • 03.02.12__creating table.sql
    • 04.02.12__添加专栏。
    • 05.02.12__改变表

    鉴于日期是版本,上面的列表给出了flyway从主分支中应用这些迁移的顺序(根据词法排序)。

    由于没有与git分支具有相同名称的文件,因此文件只是在主分支的最终版本中并存。