jdbc - 如何在 Play Framework 2.4 中使用相对于项目根目录到 H2 db 文件配置的路径?

标签 jdbc h2 relative-path persistent playframework-2.4

我们正在开发 Play 2.4 应用程序(Java API)。

出于开发目的,我们希望使用具有相对于项目根目录的 DB 文件路径的持久性 H2 数据库。

How to use a persistent H2 database in the Play Framework instead of in-memory Play 2.0 有解决方案:

db.default.url="jdbc:h2:file:data/db"

但是,对于 Play 2.4,这似乎不起作用,但我收到错误消息,底部有以下异常:
Caused by: org.h2.jdbc.JdbcSQLException: A file path that is implicitly 
relative to the current working directory is not allowed in the database
URL "jdbc:h2:file:data/db". Use an absolute path, ~/name, ./name, or the 
baseDir setting instead. [90011-187]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:179)
    ...

我可以使用绝对路径和相对于主目录的路径获得连接,如下所示:
db.default.url="jdbc:h2:file:/Users/foo/data/db"

或者
db.default.url="jdbc:h2:~/data/db"

但是,有什么方法可以引用项目根文件夹吗?

最佳答案

好的,我做了一些研究,在更新日志( http://www.h2database.com/html/changelog.html )中发现了这一点:

Implicit relative paths are disabled (system property "h2.implicitRelativePath"), so that the database URL jdbc:h2:test now needs to be written as jdbc:h2:./test.



在从 1.4.177 Beta 版开始的 H2 中,不再允许隐式相对路径。因此,在您的情况下,应该使用显式相对路径编写 url:db.default.url="jdbc:h2:./data/db" .

关于jdbc - 如何在 Play Framework 2.4 中使用相对于项目根目录到 H2 db 文件配置的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30596150/

相关文章:

java - 如何在Java应用程序中设置H2嵌入式数据库以在小型网络中使用?

python - 使用代码存储库时如何引用资源的相对路径

java - JTable TableRowSorter 或重新查询 MySQL DB?

java - 如何对数据库中的表进行排序

java - 如何使用H2和JPA创建数据库备份?

php - Zend Framework 1.11.11 包含路径 open_basedir 问题

javascript - 如何从一个 index.html 文件中的不同文件夹加载多个 angular2 组件?

java - 在logstash中使用jdbc输入插件时的时间变化

java - 为什么我的方法没有删除存在的表?

jpa - eclipselink连接池