Javers - 如何在 Spring 引导中删除和创建 Javers 表?

Javers - How to drop and create Javers tables in Spring Boot?

如何在每次 Spring 引导应用程序 运行 时从头开始创建 Javers 表,例如 jv_snapshot

如果表不存在,JaVers 会创建它的表,并且永远不会删除它们。没有像 Hibernate 中那样的 create-drop 选项。对于测试,我们建议使用内存中的数据库 (H2) 并且 运行 每个测试都在一个新的空数据库实例上进行。

是的,它将自动创建。

在此处查看演示: https://github.com/yhjhoo/javers-demo

我遇到了同样的问题,因为我想在我的开发环境中使用 postgres.

每次启动 Spring 启动应用程序时清除 JaVers 的所有数据

我在 application.properties 中设置如下:

spring:
  profiles: dev
  jpa:
    hibernate:
      ddl-auto: create-drop
  datasource:
    initialization-mode: always
    continue-on-error: true

因为initialization-mode现在是活动的,Spring启动会查看src/main/ressources下的文件data.sql和运行里面的SQL .

TRUNCATE jv_commit CASCADE;
TRUNCATE jv_commit_property CASCADE;
TRUNCATE jv_global_id CASCADE;
TRUNCATE jv_snapshot CASCADE;

即使表不存在,Spring 由于 continue-on-error 设置,引导仍会启动。