小编典典

完整的数据库架构转换-如何测试重写的查询?

sql

我们的数据库在所有方面都设计得很差(我们继承了它)。我已经将架构重新设计为可用和可维护的东西。删除了一些表和列,移动了许多列,并重命名了大多数表和列。一些数据类型也已更改。

我已经从我们的Web应用程序中提取了所有查询,并且我们已经开始重写它们。我们认为,我们的DBA能够将旧数据迁移到新架构。为了确保我们需要通过将旧结果与新结果进行比较来测试每个查询。

我们如何测试这种大规模迁移?我需要能够指定参数,并将旧表/列映射到新表/列。对于数百个查询,这是一项艰巨的任务。我可以自己写点东西,但是我对时间的要求很高,因此最好使用现有工具。

谢谢!


阅读 196

收藏
2021-04-22

共1个答案

小编典典

我必须这样做…而且很容易,因为我重写了整个应用程序;)

许多查询听起来像基本操作,例如select,insert,updates尚未在函数中抽象出来-也许可以帮助在适应之前清理混乱。

现在进行测试:

您需要一个测试脚本,该脚本将a)运行所有查询b)存储所有选择的输出以进行比较

  1. 备份测试数据库@状态0,清除常规查询日志

  2. 使用所有删除,选择和更新来遍历您的应用程序,

  3. 复制粘贴该日志,进行每个选择,然后在其前面加上“创建表temptable_xyz”(当然,也可以将SELECT选入temptable_xyz ..取决于可用的语法)

  4. 在两个数据库上运行,在迁移脚本之后测试db @ state 0和测试db @ state 0

  5. 比较

如果您可以确保在每个应用程序中都使用了每个功能,则应该这样做。

GL-没什么比将现有的东西变得更好;)

2021-04-22