一尘不染

INIT = RUNSCRIPT和相对路径的问题

hibernate

我将Maven约定用于源路径(src / main src / test),并且我的sql脚本位于src / main / resources /
scripts中。

我想用H2内存运行我的应用程序,我想使用jdbc url初始化我的数据库:

database.url=jdbc:h2:mem:;INIT=RUNSCRIPT FROM 'src/main/resources/scripts/create.sql';

我的问题是,这个相对路径(src / main / …)不起作用,并且如果init = runscript命令什么都没有针对,则H2不会崩溃。

有人知道我应该使用什么方法来完成这项工作吗?

谢谢


阅读 347

收藏
2020-06-20

共1个答案

一尘不染

您可以使用以下网址:
"jdbc:h2:mem:sample;INIT=RUNSCRIPT FROM 'classpath:scripts/create.sql'"

有了这一点,就有可能从classpath运行脚本。因此,您可以将它放在src / main / resources / scripts或src / test
/ resources / scripts到您的Maven(或其他项目)项目中。

2020-06-20