【发布时间】:2015-10-06 06:14:05
【问题描述】:
对于如何在多开发人员/多分支 (VCS) 环境中成功处理数据库视图的迁移,是否有任何既定做法?
我们一直在为所有架构更改使用数据库迁移库,但是当不同代码分支中的不同开发人员更改相同视图但他们的起点相同时遇到了问题。
每个开发人员都有自己的数据库副本,但由于视图通常需要在迁移中指定整个定义,这意味着当我们针对暂存数据库或生产数据库运行迁移时,无论运行哪个视图迁移last 覆盖在任何以前的视图迁移中所做的任何更改。
示例:
- 当前视图如下:
SELECT 'x'。 - 开发人员 1 启动分支 A 并添加一个新列。他们的“向上”迁移看起来像:
SELECT 'x', 'y'。 - 开发人员 2 启动分支 B 并添加一个新列。他们的“向上”迁移看起来像:
SELECT 'x', 'z'。 - 开发人员 2 首先完成她的分支并运行迁移。视图现在看起来像
SELECT 'x', 'z'。 - 开发人员 1 现在完成他的分支并运行迁移。视图现在看起来像
SELECT 'x', 'y'并且开发人员 2 的更改已丢失。
【问题讨论】:
-
msdn.microsoft.com/en-us/data/dn481501.aspx 也可能有帮助(上面的 Steve Greene 的链接中有链接)
标签: mysql database doctrine database-migration entity-framework-migrations