单个租户的Hibernate数据导出/导入

时间:2011-04-11 19:44:12

标签: java mysql hibernate multi-tenant data-export

我已经发布了一个关于在过去使用非常具体的技术实施多租户解决方案的一般性问题。我现在有一个更具体的问题,我希望得到一些意见。

对于我们的多租户应用程序,我们需要将单个租户的数据从一个数据库导出到另一个数据库。例如,我们的数据库可能包含10个租户的数据,但这10个租户中的一个想拥有自己的应用程序实例(无论出于何种原因,例如他们需要非常具体的自定义)。

所以我基本上希望能够编写一个“工具”来仅获取租户X的数据并将其移动到它自己的数据库中。

我们正在使用MySQL数据库以及最新版本的Hibernate核心和注释。

我们实现多租户的方式基本上是为我们所有实体扩展的所有表/基类添加租户ID。

最初我以为我可以使用这样的东西:

mysqldump -uusername -ppassword database_name -w "tenant_id=1" > dump.sql

但遗憾的是所有@JoinTable都没有tenant_id,所以失败了。

我的问题是:有没有人对如何导出单个租户的数据然后将其导入新数据库(我想我可以使用标准的Hibernate SchemaExport创建)有任何好的想法?

我有一个想法,但对我来说,正确实现它我需要Hibernate来创建我的数据库模式,没有任何约束,然后我可以将数据泵入,然后我需要将约束放在db post导入。我不知道如何让Hibernate最初不添加约束然后再执行,但如果有人有想法请告诉我。

由于

0 个答案:

没有答案