在我的Spring-Boot项目中,何时:
javers.sqlSchemaManagementEnabled = true
Javers表是在第一次执行时创建的(当表在数据库中不存在时),并且代码按预期运行,但是从第二次执行起,抛出异常,说明无法创建表,因为它们已经存在。 这是我无法理解的情况,Javers是否不应该知道表已经存在并且不尝试创建表?
javers.sqlSchemaManagementEnabled = false
如果这些表已经在数据库上创建,手动执行或使用此选项为“ true”至少执行一次应用程序,则该应用程序将按预期执行。
答案 0 :(得分:0)
如果javers.sqlSchemaManagementEnabled=true
,Javers将创建尚不存在的SQL表。
已在此处选中
很难说为什么在您的情况下不起作用,请尝试使用最新的Javers版本调试此代码。
答案 1 :(得分:0)
在PostgreSQL中使用非公共模式时,我遇到了同样的问题。
我通过切换到公共模式解决了该问题,现在它可以与javers.sqlSchemaManagementEnabled=true
正常使用。
对于其他架构,您应该以某种方式在org.javers.repository.sql.schema.TableNameProvider
中指定架构名称