Codefluent tablediff.sql 臃肿
Codefluent tablediff.sql bloat
我使用 CodeFluent 已经有一段时间了,我真的非常满意它。但是,生成的 tablediff 似乎每次都包含不必要的更改。有谁知道这些更改是否可以关闭?
- 所有 [nvarchar] (max) 列每次都设置为 [nvarchar] (max),即使它们已经是 [nvarchar] (max)。
- 似乎每次都设置了所有默认值,即使它们已经存在。在我们的 diff 中有将近 100 个 _trackLastWriteTime 和 _trackCreationTime。
- 删除和添加约束
为什么这是个问题?
- 由于 tablediff 太大,很难查看和验证
'real' 变化
- 执行 tablediff 需要更长的时间,尤其是
在大型数据库上
- 约束的删除逆转了我们的变化
对主键和索引进行,有时甚至会导致
只创建一个堆。
生成的 diffs 脚本的目标是在 开发阶段 构建模型后获得正确的数据库模式。只要最终的数据库模式没问题,它就可以包含无用的语句。
要在生产环境中升级数据库,您应该使用 SQL Server Pivot Script producer。 Pivot Script 生产者生成一个 XML 文件(或 zip 文件),其中包含数据库的表、存储过程、函数等的列表。 Pivot Runner 读取此文件,并创建或升级数据库到 XML 文件中描述的状态。由于它直接生成和执行 SQL 语句(不生成脚本文件),因此 PivotRunner 比 diffs 脚本执行更少的操作。
如果需要,您可以完全控制枢轴跑步者的行为:
此架构显示了开发和部署工作流程:
我使用 CodeFluent 已经有一段时间了,我真的非常满意它。但是,生成的 tablediff 似乎每次都包含不必要的更改。有谁知道这些更改是否可以关闭?
- 所有 [nvarchar] (max) 列每次都设置为 [nvarchar] (max),即使它们已经是 [nvarchar] (max)。
- 似乎每次都设置了所有默认值,即使它们已经存在。在我们的 diff 中有将近 100 个 _trackLastWriteTime 和 _trackCreationTime。
- 删除和添加约束
为什么这是个问题?
- 由于 tablediff 太大,很难查看和验证 'real' 变化
- 执行 tablediff 需要更长的时间,尤其是 在大型数据库上
- 约束的删除逆转了我们的变化 对主键和索引进行,有时甚至会导致 只创建一个堆。
生成的 diffs 脚本的目标是在 开发阶段 构建模型后获得正确的数据库模式。只要最终的数据库模式没问题,它就可以包含无用的语句。
要在生产环境中升级数据库,您应该使用 SQL Server Pivot Script producer。 Pivot Script 生产者生成一个 XML 文件(或 zip 文件),其中包含数据库的表、存储过程、函数等的列表。 Pivot Runner 读取此文件,并创建或升级数据库到 XML 文件中描述的状态。由于它直接生成和执行 SQL 语句(不生成脚本文件),因此 PivotRunner 比 diffs 脚本执行更少的操作。
如果需要,您可以完全控制枢轴跑步者的行为:
此架构显示了开发和部署工作流程: