Codefluent tablediff.sql 臃肿

Codefluent tablediff.sql bloat

我使用 CodeFluent 已经有一段时间了,我真的非常满意它。但是,生成的 tablediff 似乎每次都包含不必要的更改。有谁知道这些更改是否可以关闭?

  1. 所有 [nvarchar] (max) 列每次都设置为 [nvarchar] (max),即使它们已经是 [nvarchar] (max)。
  2. 似乎每次都设置了所有默认值,即使它们已经存在。在我们的 diff 中有将近 100 个 _trackLastWriteTime 和 _trackCreationTime。
  3. 删除和添加约束

为什么这是个问题?

  1. 由于 tablediff 太大,很难查看和验证 'real' 变化
  2. 执行 tablediff 需要更长的时间,尤其是 在大型数据库上
  3. 约束的删除逆转了我们的变化 对主键和索引进行,有时甚至会导致 只创建一个堆。

生成的 diffs 脚本的目标是在 开发阶段 构建模型后获得正确的数据库模式。只要最终的数据库模式没问题,它就可以包含无用的语句。

要在生产环境中升级数据库,您应该使用 SQL Server Pivot Script producer。 Pivot Script 生产者生成一个 XML 文件(或 zip 文件),其中包含数据库的表、存储过程、函数等的列表。 Pivot Runner 读取此文件,并创建或升级数据库到 XML 文件中描述的状态。由于它直接生成和执行 SQL 语句(不生成脚本文件),因此 PivotRunner 比 diffs 脚本执行更少的操作。

如果需要,您可以完全控制枢轴跑步者的行为:

此架构显示了开发和部署工作流程: