如何使用spring boot测试flyway迁移?

如何使用spring boot测试flyway迁移?,spring,integration-testing,flyway,Spring,Integration Testing,Flyway,我想问您如何测试迁移是否成功 情景: 在实体的第一个版本中,我们有一些字段。在下一个版本中,我将添加另一个实体,其中包含来自第一个表的一些数据。如何测试此数据是否正确迁移 当然,我可以通过编写SELECT等手动检查 但有没有办法在单元/集成测试中测试这一点 v1 People( id: Int name: String street: String ) v2 People( id: Int name: String addressId: Int ) Address( id: Int stre

我想问您如何测试迁移是否成功

情景: 在实体的第一个版本中,我们有一些字段。在下一个版本中,我将添加另一个实体,其中包含来自第一个表的一些数据。如何测试此数据是否正确迁移

当然,我可以通过编写SELECT等手动检查

但有没有办法在单元/集成测试中测试这一点

v1

People(
id: Int
name: String
street: String
)
v2

People(
id: Int
name: String
addressId: Int
)

Address(
id: Int
street: String <--- migrated from v1 People table
)
人(
id:Int
名称:String
地址ID:Int
)
地址(
id:Int

street:String我认为您可以通过设置Hibernate验证模式来实现这一点。一旦Flyway完成迁移,它将实现“测试”。在您的application.properties中,应用以下更改:

spring.jpa.hibernate.ddl-auto=validate

通过此操作,Hibernate将验证您的表是否符合实体定义。如果不符合,则会出现缺少信息的错误。

您可以使用“检索所有人实体作为对象列表”添加集成测试,并检查地址,不是吗?是的,但如果数据库已存在。我需要多个实例(迁移前一次,迁移后第二次)。因为通常,如果您进行了集成测试,那么import.sql是正确的