3

构建和维护一个数据库,然后由许多开发人员进一步部署/开发是软件开发中一直在进行的事情。我们创建一个构建脚本,并维护随着数据库随时间增长而应用的进一步更新脚本。有很多方法可以管理这一点,从手动更新到帮助自动化这些过程的控制台应用程序/构建脚本。

是否有人已经构建/管理了这些流程,并转移到了用于数据库模式管理的源代码控制解决方案?如果是这样,他们找到了最佳解决方案是什么?有没有应该避免的陷阱?

Red Gate 似乎是 MSSQL 世界的大玩家,他们的数据库源代码控制看起来非常有趣: http ://www.red-gate.com/products/solutions_for_sql/database_version_control.htm

虽然它看起来不像替换(默认)数据*管理流程,但它只替换了我 pov 中一半的变更管理流程。

(当我谈论数据时,我的意思是查找值之类的东西,需要在默认情况下或在 DR 场景中部署的数据)

我们在 .Net/MSSQL 环境中工作,但我确信所有语言的前提都是相同的。

4

4 回答 4

1

我负责管理我工作的银行内部开发的数据仓库。这需要不断更新,我们有一个由 2-4 名开发人员组成的团队致力于此。

我们很幸运,因为我们的“产品”只有一个实例,因此我们不必迎合部署到可能处于不同版本的多个实例。

我们为数据库中的每个对象(表、视图、索引、存储过程、触发器)保留一个创建脚本文件。

ALTER TABLE我们尽可能避免使用,更喜欢重命名表,创建新表并迁移数据。这意味着我们不必查看ALTER脚本的历史记录——我们总是可以通过查看每个表的创建脚本来查看其最新版本。迁移由单独的迁移脚本执行 - 这可以部分自动生成。

每次发布时,我们都会有一个脚本以适当的顺序运行创建脚本/迁移脚本。

仅供参考:我们使用 Visual SourceSafe(糟糕!)进行源代码控制。

于 2010-07-14T11:05:28.277 回答
1

我一直在寻找一个 SQL Server 源代码控制工具——并且遇到了很多可以完成这项工作的高级版本——使用 SQL Server Management Studio 作为插件。

LiquiBase 是免费的,但我从来没有完全满足我的需要。

还有另一种免费产品,尽管它与 SSMS 并驾齐驱,并将对象和数据脚本化为平面文件。

然后可以将这些对象抽取到一个新的 SQL Server 实例中,然后该实例将重新创建数据库对象。

gitSQL

于 2015-05-12T15:04:07.333 回答
0

也许您要的是LiquiBase

于 2010-07-14T11:52:55.943 回答