H2 数据库转储
H2 database dump
我正在尝试通过执行以下命令将数据从 H2 数据库转储到我项目中的 data.sql 文件:
SCRIPT TO '/home/mat/Projects/myapp/server/src/main/resources/data.sql'
数据被转储并且 sql 文件被填充但是当我重新启动应用程序时抛出异常:
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ADDRESS" already exists; SQL statement:
CREATE MEMORY TABLE "PUBLIC"."ADDRESS"( "ID" BIGINT DEFAULT (NEXT VALUE FOR "PUBLIC"."SYSTEM_SEQUENCE_D07A8597_940F_46CC_9CCA_78B64543126F") NOT NULL NULL_TO_DEFAULT SEQUENCE "PUBLIC"."SYSTEM_SEQUENCE_D07A8597_940F_46CC_9CCA_78B64543126F", "CITY" VARCHAR(255), "COUNTRY" VARCHAR(255), "HOME_NO" VARCHAR(255), "POSTAL_CODE" VARCHAR(255), "STREET" VARCHAR(255) ) [42101-199]
这是为什么?数据库及其数据应该在启动时初始化,但看起来像嗯?首先生成项目中的实体,这就是抛出异常的原因?
我的 app.properties 文件:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.jpa.show-sql=true
当您关闭并重新启动应用程序时。
您的脚本再次执行并尝试创建一个新的 table 因此抛出 table exists 错误。
因此您需要指定重新启动应用程序时发生的情况。
spring.jpa.hibernate.ddl-auto=update
如果您需要更新 table
删除并重新创建 table 使用
spring.jpa.hibernate.ddl-auto=create-drop
您可以通过以下链接阅读更多内容
我正在尝试通过执行以下命令将数据从 H2 数据库转储到我项目中的 data.sql 文件:
SCRIPT TO '/home/mat/Projects/myapp/server/src/main/resources/data.sql'
数据被转储并且 sql 文件被填充但是当我重新启动应用程序时抛出异常:
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ADDRESS" already exists; SQL statement:
CREATE MEMORY TABLE "PUBLIC"."ADDRESS"( "ID" BIGINT DEFAULT (NEXT VALUE FOR "PUBLIC"."SYSTEM_SEQUENCE_D07A8597_940F_46CC_9CCA_78B64543126F") NOT NULL NULL_TO_DEFAULT SEQUENCE "PUBLIC"."SYSTEM_SEQUENCE_D07A8597_940F_46CC_9CCA_78B64543126F", "CITY" VARCHAR(255), "COUNTRY" VARCHAR(255), "HOME_NO" VARCHAR(255), "POSTAL_CODE" VARCHAR(255), "STREET" VARCHAR(255) ) [42101-199]
这是为什么?数据库及其数据应该在启动时初始化,但看起来像嗯?首先生成项目中的实体,这就是抛出异常的原因?
我的 app.properties 文件:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.jpa.show-sql=true
当您关闭并重新启动应用程序时。
您的脚本再次执行并尝试创建一个新的 table 因此抛出 table exists 错误。
因此您需要指定重新启动应用程序时发生的情况。
spring.jpa.hibernate.ddl-auto=update
如果您需要更新 table
删除并重新创建 table 使用
spring.jpa.hibernate.ddl-auto=create-drop
您可以通过以下链接阅读更多内容