【发布时间】:2015-10-13 15:02:23
【问题描述】:
我们由 Hibernate 映射的架构随着时间的推移而发展,我们正在使用 flyway 在不同版本之间迁移;效果很好。然后,我们在 CI 构建管道期间自动对数据库副本进行迁移,并启动休眠以验证我们的模型与我们的架构兼容,从而确保迁移在部署时能够正常工作。
但是,如果我们忘记删除数据库中的字段,但在模型中删除它,则会出现一个问题。如果该字段是 NOT NULL 字段或外键,问题会变得更糟。
因此,我想在启动期间构建一个检查,以验证数据库不包含任何休眠未知的字段。 Hibernates SchemaValidator 检查数据库中没有丢失任何字段,但反之亦然。
任何想法我如何编写这个逻辑。我在想我可能 SchemaValidator 来获取 DDL,但似乎有很多陷阱需要处理。
【问题讨论】:
-
当我在 google 中进行依赖注入搜索时,我总是输入关键字“自定义”。在这种情况下,“休眠 CustomSchemaValidator”即gist.github.com/jelies/8951881