繁体   English   中英

Spring、H2、R2DBC 和 Liquibase:/.testdb.trace.db:只读文件系统

[英]Spring, H2, R2DBC and Liquibase: /.testdb.trace.db: Read-only file system

当尝试启动 Spring 引导应用程序进行测试(使用 H2 数据库)并配置 R2DBC 和 Liquibase 时,出现以下错误:

2022-10-04 12:50:18.893  INFO 57774 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 67 ms. Found 2 R2DBC repository interfaces.
org.h2.message.DbException: Log file error: "/.testdb.trace.db", cause: "java.nio.file.FileSystemException: /.testdb.trace.db: Read-only file system" [90034-214]

这是我的配置:

spring:
  liquibase:
    change-log: classpath:liquibase/db.changelog.xml
    contexts: production
    url: jdbc:h2:file:///./.testdb;MODE=MySQL
    
  r2dbc:
    url: r2dbc:h2:file:///./.testdb

  h2:
    console:
      enabled: false

我能做些什么来修复这个错误吗?

问题是由 URL 引起的,R2DBC 要求它看起来像这样:

  r2dbc:
    url: r2dbc:h2:file:///./.testdb

但是,如果您尝试将其复制到 Liquibase 部分,则会出现错误。 要解决此问题,请从 Liquibase URL 中删除正斜杠:

spring:
  liquibase:
    change-log: classpath:liquibase/db.changelog.xml
    contexts: production
    url: jdbc:h2:file:./.testdb;MODE=MySQL

最终版本:

spring:
  liquibase:
    change-log: classpath:liquibase/db.changelog.xml
    contexts: production
    url: jdbc:h2:file:./.testdb;MODE=MySQL

  r2dbc:
    url: r2dbc:h2:file:///./.testdb
  h2:
    console:
      enabled: false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM