过去,我发布了一个关于使用非常具体的技术实现多租户解决方案的相当普遍的问题。我现在有一个更具体的问题,我希望得到一些意见。
对于我们的多租户应用程序,我们需要将单个租户的数据从一个数据库导出到另一个数据库。例如,我们的数据库可能包含 10 个租户的数据,但是这 10 个租户中的一个想要拥有自己的应用程序实例(无论出于何种原因,例如他们需要非常具体的定制)。
所以我基本上希望能够编写一个“工具”来只获取租户 X 的数据并将其移动到它自己的数据库中。
我们正在使用 MySQL 数据库以及最新版本的 Hibernate 核心和注释。
我们实现多租户的方式基本上是向我们所有的表/我们所有实体扩展的基类添加一个租户 ID。
最初我认为我可以使用这样的东西:
mysqldump -uusername -ppassword database_name -w "tenant_id=1" > dump.sql
但不幸的是,所有@JoinTables 都没有tenant_id,所以这失败了。
我的问题是:是否有人对如何导出单个租户的数据然后将其导入新数据库(我想我可以使用标准 Hibernate SchemaExport 创建)有什么好的想法?
我有一个想法,但是要正确实现它,我需要 Hibernate 来创建我的数据库模式,并且没有任何限制,然后我可以将数据泵入,然后我需要对数据库导入后施加限制。我不知道如何让 Hibernate 一开始不添加约束,然后再做,所以如果有人有想法请告诉我。
谢谢