【发布时间】:2018-06-27 08:29:26
【问题描述】:
RedGate ReadyRoll 是一款出色的数据库版本控制工具,其工作原理就像一个魅力。但唯一的一个缺点 - 价格。 我研究了使用什么,发现 DBUp、Envolve...这些工具很好,但是:
- 无法定义 Up 和 Down 脚本以应用和回滚迁移
- 根据名称顺序而不是创建时间应用迁移。这不是什么大问题,因为开发人员可以根据时间给出名称,但是...
当开发人员使用的不是共享数据库而是他们自己的数据库和单独更改数据库架构时,这些工具不允许在不同的分支中进行开发。当 Team Lead 必须在分支之间切换或 QA 必须在功能进入 master 之前对其进行测试时,如何处理这些问题 - 这对我来说是一个悬而未决的问题。
使用 SSDT - 作为一个案例,但如果需要使用 DATA 而不仅仅是模式来做某事,这会让生活变得非常困难。如果使用基于迁移的方法,可以非常简单地完成什么 - 当尝试使用基于状态的方法时,这会成为一个非常大的问题。
有人可以推荐一些使用基于迁移的方法进行数据库版本控制的工具,该工具可以与 .NET 堆栈一起使用,并且免费或付费但比 RedGate 便宜?
谢谢
附言
如果仅将实体框架用于迁移会怎样?没有实体等。创建数据库上下文并做所有事情只是为了创建具有 Up/Down 的迁移文件,然后在那里编写脚本或定义 sql 文件以应用 up/down 迁移更改。唯一的问题 - 这是快照。它将如何与它一起工作。 有人用过这种方法吗?
【问题讨论】:
-
这能回答你的问题吗? Alternative to RedGate ReadyRoll yet?
标签: database entity-framework deployment dbmigrate redgate