0

我有一个数据库项目,我想知道添加预定数据(如状态、类型等)的最佳实践是什么......

  • 每种状态/类型都有 1 个部署后脚本吗?或者
  • 我是否有 1 个:r someStatus.sql用于每个状态/类型脚本的部署后脚本?

我想第三种选择可能是将所有插入都放在一个巨大的脚本中,但这对我来说似乎很糟糕。过去,我使用过选项 2,但我不确定为什么要这样做。建议?

4

2 回答 2

0

有工具可以打包您的数据。我愉快地使用了 RedGate SQL Packager(不是免费的)和从开发环境中提取的 DBUnit XML 数据文件,并通过 Ant<dbunit>任务发送到数据库。

于 2013-01-18T15:02:05.333 回答
0

对于我们的场景,我们使用#3 和#2 的组合。如果我们有一个新的构建,我们会填充空数据库,将我们通常使用的部署后插入设置为不运行,然后在整个构建/发布之后填充数据。我也倾向于批量处理相关的插入,所以如果我要插入 15 个状态,我会将它们添加到一个脚本中。这样做的缺点是您需要确保您的脚本可以重新运行并且不会导致问题,因此插入临时表,然后对您的实际表进行左连接可能是最好的解决方案。它将脚本的数量减少到更易于管理的大小。

对于增量发布,我倾向于按 Story(使用 Scrum)批量插入,以便相关脚本放在一起。它还可以帮助我了解脚本何时在生产中运行并且可以安全地从项目中删除。

您可能还想查看某种“参考”数据库,您只存储参考值,然后可能需要使用诸如 Red-Gate 的数据比较之类的工具来提取适当的数据集。专业版可以自动化/脚本化,因此您可以更轻松地提取新数据进行测试。从长远来看,这可能是您的最佳解决方案,因为您可以轻松设置要复制的表并设置数据过滤器。

于 2013-05-28T15:49:11.437 回答