gpt4 book ai didi

mysql - 如何在 Flyway 测试扩展中强制使用方言?

转载 作者:行者123 更新时间:2023-11-29 03:22:09 25 4
gpt4 key购买 nike

我正在使用 Flyway test extensions使用 H2 数据库和 MySQL 方言。

不幸的是,@FlywayTest 注释使用 H2 方言执行数据库清理并以错误结束:

org.flywaydb.core.internal.dbsupport.FlywaySqlException: 
Unable to drop "PUBLIC"."site"
------------------------------
SQL State : 42S02
Error Code : 42102
Message : Table "site" not found; SQL statement:
DROP TABLE "PUBLIC"."site" CASCADE [42102-193]


at org.flywaydb.core.internal.dbsupport.SchemaObject.drop(SchemaObject.java:82)
at org.flywaydb.core.internal.dbsupport.h2.H2Schema.doClean(H2Schema.java:69)
at org.flywaydb.core.internal.dbsupport.Schema.clean(Schema.java:148)
at org.flywaydb.core.internal.command.DbClean$4.call(DbClean.java:184)
at org.flywaydb.core.internal.command.DbClean$4.call(DbClean.java:181)
at org.flywaydb.core.internal.util.jdbc.TransactionTemplate.exec

但是,当我从控制台手动运行 DROP TABLE PUBLIC.site CASCADE(无引号)时,它会成功结束。如何在 Flyway 测试扩展中强制使用方言?

最佳答案

这不是注解@FlywayTest的问题。注解@FlywayTest调用flyway.clean()方法。
Flyway 仅支持 H2 模式和表的引用名称。
在 Github 上查看类源代码 https://github.com/flyway/flyway/blob/master/flyway-core/src/main/java/org/flywaydb/core/internal/dbsupport/h2/

我认为不会有支持H2特性模式的计划,比如Mysql、Oracle、....

您可以在这里打开一个问题 https://github.com/flyway/flyway/issues

关于mysql - 如何在 Flyway 测试扩展中强制使用方言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com