spring-boot 文件系统中的持久 h2 数据库
Posted
技术标签:
【中文标题】spring-boot 文件系统中的持久 h2 数据库【英文标题】:spring-boot Persistent h2database in filesystem 【发布时间】:2017-12-20 19:20:40 【问题描述】:如何使用 h2database 配置 spring-boot,以便每次重新启动时重用数据库。
这是我的 application.properties 文件中唯一的一行
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
【问题讨论】:
你的意思是“重用数据库”? 【参考方案1】:您必须为spring.datasource.url
指定一个指定文件系统数据库的值。您可以使用 jdbc:h2:file:
前缀来实现。
例如,您可以使用此配置将 DB 存储在您的 home
目录的 db
文件夹中的 mydb.mv.db
文件中:
spring.datasource.url = jdbc:h2:file:~/db/mydb
请注意,spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
不是必需的。运行时位于类路径中的 url 和 H2 JDBC 驱动程序就足够了。
另请注意,默认情况下,如果您使用嵌入式数据库(H2、HSQL 或 Derby),数据库将在启动时自动创建。
即使您在 JDBC URL 中将文件指定为数据库也是如此。
所以为了避免在每次 Spring Boot 启动时重新创建数据库,您还应该添加:
spring.jpa.hibernate.ddl-auto = update
或
spring.jpa.hibernate.ddl-auto = validate
【讨论】:
还需要spring.jpa.hibernate.ddl-auto = update
而不是create-drop
在运行测试的情况下是否可以重新创建?
你应该有一个特定的application.properties
,例如application-test.properties
来区分这两种情况。以上是关于spring-boot 文件系统中的持久 h2 数据库的主要内容,如果未能解决你的问题,请参考以下文章