How to move data from one tenant to another in an easy way

Description

Hi! I have setup with multiple tenants(users) with the same schema. At the current moment I need to move some data from one tenant to another. As the schema contains many collections with multiple cross-references I see that the script from ‘Migrate data’ topic(from official documentation) would be not so easy to implement, because I have connections to other data on S3 storage and those connections use UUIDs from the weaviate objects as a part of the data object paths.
So, my question is - Does a way to change a tenant for the data in a collection in a simple way exist ? Or will I need to make a huge script for this (I will need to insert the main data again, recreate all the references and reupload additional data to the S3 storage with new UUIDs as a parts of new S3 object paths)?
Thanks in advance

Server Setup Information

  • Weaviate Server Version: 1.26.8
  • Deployment Method: k8s
  • Multi Node? Number of Running Nodes: 3
  • Client Language and Version: Python 4.11.0
  • Multitenancy?: Yes

hi @Spun !!

I am afraid you are in for some scripting. The migration guide, will cover some basic scenarios and good practices.

You can keep the uuids originated by Weaviate and used as a reference in other systems by reading the original ones and making sure to provide them as the uuid argument when moving your tenant data to a different collection or even cluster.

Now for migrating the cross references, you’ll need to migrate the cross-referenced collections first, and only then the the collection.

Are you moving from one cluster to another, or plan on doing some remodeling?

Let me know if this helps.

Thanks!

Hi @DudaNogueira !
No, this is no cluster to cluster migration, this is tenant to tenant migration inside the same cluster. Thats why the question about UUIDs is important - because I’m afraid I can’t use the same UUID for different tenants in the cluster.

Hi @Spun !

You can use the same uuid for objects in different tenants without a problems, as they are isolated.

The only problem here, depending on your dataset size, would be the resource usage. But as soon as you delete the entire migrated data from a tenant, Weaviate should free the resources, but during the migration, it should use the resources for both tenants.

Other than that, you shouldn’t have issues.

If you need further assistance, we are here to help!

Let me know if this helps :slight_smile:

You can use the same uuid for objects in different tenants without a problems, as they are isolated.

This is great, thank you!