使用 java 将审计 table 移动到新的数据库实例
Moving auditing table with java envers to new database instance
我有一个 Mysql 数据库,架构名称 "myschema"。这个模式有表,其中一些表是
审计表。这是我对 java 项目的依赖。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>5.1.0.Final</version>
</dependency>
现在我想在我当前的数据库上重新创建这个审计表,并在一个单独的实例上添加它们,并使用一个新的分支 uri。
如何做到这一点?任何建议,提前谢谢你
AFAIK Envers 不支持使用单独的数据库/DataSource
。似乎有几种方法可以将数据获取到另一个数据库:Oracle Database Link - MySQL Equivalent?
或者,我想您可以编写自定义 DataSource
,根据语句将语句委托给不同的数据源。
检查是否提到了审计 table,如果是,将其发送到审计数据库。
org.hibernate.envers.default_schema
应该用于审核的默认架构名称 tables。
org.hibernate.envers.default_catalog
应该用于审核的默认目录名称 tables.
您应该使用的选项取决于您的数据库。
还有一个错误,如果您使用 Envers 开箱即用的默认修订实体映射,那么在使用这些配置选项时,这些映射将无法正确映射,只有 tables与实体映射有关。
为了将 REVINFO
table 正确映射到适当的架构或目录,需要将自定义修订实体映射与 @Table
注释结合使用命令明确指定schema/catalog。请参阅描述使用自定义 @RevisionEntity
注释实体映射与 Envers 的 Revision Log 部分。
我有一个 Mysql 数据库,架构名称 "myschema"。这个模式有表,其中一些表是 审计表。这是我对 java 项目的依赖。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>5.1.0.Final</version>
</dependency>
现在我想在我当前的数据库上重新创建这个审计表,并在一个单独的实例上添加它们,并使用一个新的分支 uri。
如何做到这一点?任何建议,提前谢谢你
AFAIK Envers 不支持使用单独的数据库/DataSource
。似乎有几种方法可以将数据获取到另一个数据库:Oracle Database Link - MySQL Equivalent?
或者,我想您可以编写自定义 DataSource
,根据语句将语句委托给不同的数据源。
检查是否提到了审计 table,如果是,将其发送到审计数据库。
org.hibernate.envers.default_schema
应该用于审核的默认架构名称 tables。
org.hibernate.envers.default_catalog
应该用于审核的默认目录名称 tables.
您应该使用的选项取决于您的数据库。
还有一个错误,如果您使用 Envers 开箱即用的默认修订实体映射,那么在使用这些配置选项时,这些映射将无法正确映射,只有 tables与实体映射有关。
为了将 REVINFO
table 正确映射到适当的架构或目录,需要将自定义修订实体映射与 @Table
注释结合使用命令明确指定schema/catalog。请参阅描述使用自定义 @RevisionEntity
注释实体映射与 Envers 的 Revision Log 部分。