我尝试用H2 DB测试我的代码。我对所有步骤(init、schema、data)都有一些迁移。在运行迁移时,我使用nkonev r2dbc-迁移
当我试图运行一个测试时,我捕获了一个异常“SQL语法异常”,这意味着H2不能使用‘LIMIT’。
r2dbc:h2:mem:///testdb?options=MODE=PostgreSQL但它只给了我另一个问题:
io.r2dbc.spi.R2dbcBadGrammarException: Duplicate column name "?column?"; SQL statement:
insert into "migrations_lock"(id, locked) select * from (select 1, false) x where not exists(select * from "migrations_lock") [42121-214]我试过所有方言,就像一个模式属性。我试过所有方言,就像迁移方言一样。但什么都没变。
我做错什么了?
应用程序为:SpringBoot2.7.5+ WebFlux + Kotlin
我的等级依赖关系:
implementation("name.nkonev.r2dbc-migrate:r2dbc-migrate-spring-boot-starter:2.7.8")
implementation("io.r2dbc:r2dbc-pool:0.9.2.RELEASE")
implementation("io.r2dbc:r2dbc-spi:1.0.0.RELEASE")
implementation("io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE")
implementation("io.r2dbc:r2dbc-h2:0.9.1.RELEASE")当我像往常一样用PostgreSQL运行这个应用程序时,一切都很好。
我试图为H2换一种方言。我想它能帮我解决问题。但PostgreSQL/Oracle没有提供帮助。Oracle在串口上有问题,为了解决这个问题,我改变了迁移。
发布于 2022-11-03 14:45:58
在我的例子中,解决方案是用偏移量改变关键字限制的位置。
从…
order by v.id asc
offset 0
limit 10至
order by v.id asc
limit 10
offset 0这个小小的更改给了我一个选项,返回到默认的H2设置。
https://stackoverflow.com/questions/74302616
复制相似问题