【问题标题】:Cheaper alternative for RedGate ReadyRollRedGate ReadyRoll 的更便宜的替代品
【发布时间】:2018-06-27 08:29:26
【问题描述】:

RedGate ReadyRoll 是一款出色的数据库版本控制工具,其工作原理就像一个魅力。但唯一的一个缺点 - 价格。 我研究了使用什么,发现 DBUp、Envolve...这些工具很好,但是:

  1. 无法定义 Up 和 Down 脚本以应用和回滚迁移
  2. 根据名称顺序而不是创建时间应用迁移。这不是什么大问题,因为开发人员可以根据时间给出名称,但是...

当开发人员使用的不是共享数据库而是他们自己的数据库和单独更改数据库架构时,这些工具不允许在不同的分支中进行开发。当 Team Lead 必须在分支之间切换或 QA 必须在功能进入 master 之前对其进行测试时,如何处理这些问题 - 这对我来说是一个悬而未决的问题。

使用 SSDT - 作为一个案例,但如果需要使用 DATA 而不仅仅是模式来做某事,这会让生活变得非常困难。如果使用基于迁移的方法,可以非常简单地完成什么 - 当尝试使用基于状态的方法时,这会成为一个非常大的问题。

有人可以推荐一些使用基于迁移的方法进行数据库版本控制的工具,该工具可以与 .NET 堆栈一起使用,并且免费或付费但比 RedGate 便宜?

谢谢

附言

如果仅将实体框架用于迁移会怎样?没有实体等。创建数据库上下文并做所有事情只是为了创建具有 Up/Down 的迁移文件,然后在那里编写脚本或定义 sql 文件以应用 up/down 迁移更改。唯一的问题 - 这是快照。它将如何与它一起工作。 有人用过这种方法吗?

【问题讨论】:

标签: database entity-framework deployment dbmigrate redgate


【解决方案1】:

ReadyRoll 还提供Core Edition,如果您还拥有 Visual Studio Enterprise 许可证,这是一项免费权利。我承认,如果您有 VS Community 或 Professional,这些信息并没有太大帮助。

【讨论】:

  • 谢谢大卫。是的,我现在知道了,但事实并非如此,因为我们没有 VS Enterprise。与我们不能使用 RedyRoll Pro 的原因相同。不幸的是。
  • 据我所知,以 .NET 为中心的选项是您列出的选项:ReadyRoll、DbUp 和 Evolve。流行的以 Java 为中心的选项是 Flyway 和 Liquibase。
【解决方案2】:

我们决定使用 EF Code First 迁移来完成我们需要的工作。如果将其与 DbUp 进行比较 - EF Code First 迁移包含 Down 脚本,它允许我们将 DB 回滚到任何目标迁移脚本。 是的,它不是 ReadyRoll 的替代品,我不得不承认没有任何类似的产品让我感到惊讶。 但它可以满足我们的需要,并且经过 1 个多月的使用,我可以说 - 它符合我们的需求。

因为我们仅将 EF Code First 用于迁移脚本,所以 here 描述的团队协作没有问题,因为如果您的上下文没有任何实体,快照总是相同的。

【讨论】:

  • 如果您不使用任何 ORM,这是一个选项吗?
  • 我们使用我们自己的“ORM”,我们最近更新为使用 Dapper。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 2010-09-09
  • 2023-04-08
  • 2017-07-31
  • 2022-01-21
  • 2021-02-25
相关资源
最近更新 更多