我们为自己创建了一个工具,该工具创建了必要的数据库列和表,并将其添加到为数据库更新生成的SQL中。但是我们必须在SchemaUpdate生成中添加一些附加功能,以使其工作:
- 我们必须添加非空属性的检查。这包括在数据上发出UPDATE语句以在可能的情况下消除null,从而导致默认值的下一点。
- 我们必须添加检查列的默认值。默认值由列及其数据类型的可为空性推断。原语总是初始化为零或false,非null枚举为其第一个枚举值,但是对于其他对象,必须手动修改脚本。
- 我们甚至增加了对调整varchar列大小的支持,因为在某些情况下数据库列的长度和长度
@Column(length)
有所不同。
但是总的来说,不能用这种方式创建一个完整的工具,因为如果用代码重命名一个列会怎样呢?如果类型以无法自动转换的方式更改(布尔型至今)?如果您无权访问重构历史记录,则无法始终传播更改。



