gpt4 book ai didi

sql-server - 如何测试数据库迁移?

转载 作者:行者123 更新时间:2023-12-02 04:15:26 26 4
gpt4 key购买 nike

我正在使用Migrator.NET为应用程序编写数据库迁移。马克-安德烈·库诺耶 (Marc-André Cournoyer) 写道:

Like any code in your application you must test your migrations. Ups and downs code. Do it part of your continuous build process and test it on as many different databases and environment as you can.

我该怎么做?假设我有创建表的 Up() 方法和删除同一个表的 Down() 方法,并且我正在使用 SQL Server。测试会是什么样子?我是否应该对系统表运行 SQL 查询(例如 select * from sys.columns)来检查表是否已创建以及它是否具有正确的结构?如果我们使用 NHibernate 怎么办?

编辑我指的是 Rails ActiveRecord 迁移意义上的迁移(基于 C# 代码以小步骤创建、修改和拆除数据库)。

编辑2here我在那里读到我们应该测试迁移。该博客文章实际上是从 Migrator 的 wiki 链接的。

最佳答案

您是否测试 DAL - 某种集成测试?

您需要的不仅仅是迁移脚本,还需要基线脚本。当您想要测试数据库升级时,您应该在测试/登台服务器上运行基线中的所有脚本以创建最新版本的数据库。然后根据最新的测试数据库测试您的 DAL。如果所有 DAL 测试都成功,那么您的迁移应该已经成功(否则您的 DAL 测试还不够完整)。

这是一项运行成本昂贵的测试,但它几乎坚如磐石。我个人承认目前很多工作都是手动完成的;我们有一个内部迁移工具,可以应用所有脚本(包括基线),因此测试数据库设置和 DAL 测试是单独的步骤。但它确实有效。如果您想确保创建了一个表,没有比实际尝试向其中插入数据更好的方法了!

您可以尝试通过查看系统目录和 INFORMATION_SCHEMA View 等来验证结果,但最终确保其确实正常工作的唯一方法是尝试使用新对象。仅仅因为对象在那里并不意味着它们具有功能。

关于sql-server - 如何测试数据库迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2332400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com