架构更改脚本:验证和测试用例

时间:2013-08-25 02:12:13

标签: sql database unit-testing testing deployment

我编写了一个架构更改脚本,用于从表A到表B中删除某个列C. 这是我的逻辑/算法,

  1. 如果表B中已不存在C列,请添加它。
  2. 如果表B中存在列C,请更新新添加的列值(最初会更新) a)来自表A的相应匹配值 condition A.columnZ(Primary_Key)= B.ColumnZ(Foreign_key)。
  3. 从表A中删除C列。
  4. 我已经编写了相同的脚本(虽然很简单)。现在,由于数据库更改非常关键,因为它将在生产数据库上运行,并且该列包含与用户的计费信息相关的一些值,因此我想在部署之前完全测试它们。

    我想获得建议测试用例来验证脚本。因此,这是我们第一次制作这些脚本,在进行更改时有关潜在问题的任何其他建议脚本,也将受到赞赏。

1 个答案:

答案 0 :(得分:1)

我使用dbunit来测试数据库脚本。这是一个非常好的工具,但可能过于以java为中心。您可以谷歌搜索其他语言的类似工具。

我个人使用liquibase来管理对数据库模式的所有更改。它通过将数据库置于已知状态来降低数据库迁移的大部分复杂性。我不必测试列可能存在或不存在的条件,因为整个模式实际上处于版本控制之下。对数据具有破坏性的数据库重构操作总是很难测试。使用liquibase这样的工具的真正优势在于,设置类似生产的测试系统变得微不足道。