Chapter 2. Migrating Service Registry data
Migrating data to Service Registry 2.x requires exporting all data from your existing 1.1 deployment and importing it into the new 2.x deployment. If you are using Service Registry as a schema registry for Kafka applications, data migration is critical because each Kafka message carries the global identifier for the schema stored in Service Registry. This identifier must be preserved during registry data migration.
Service Registry 2.x provides an API to bulk import/export all data from your registry deployment, which guarantees that all identifiers are kept when importing data from your existing registry. The export API downloads a custom .zip
file containing all the information for your artifacts. The import API accepts this .zip
and loads all artifacts into the registry in a single batch.
Service Registry 1.1 does not provide an import/export API. However, version 2.x provides an export tool compatible with Service Registry 1.1 to export a .zip
, which you can import into your 2.x registry. This tool uses common existing APIs to export all content in the registry. However, it is less performant than the 2.x export API, and should only be used when exporting from a 1.1 registry.
Prerequisites
- Running Service Registry instances of the 1.1 server you are exporting from and the 2.x server you are importing into.
- Download the Service Registry exportV1 tool from the Red Hat Customer Portal. This is a Java application that you can run on the command line.
Procedure
Export all the data from Service Registry 1.1 using the
exportV1
tool. This generates aregistry-export.zip
file in your current directory:java -jar apicurio-registry-utils-exportV1-2.5.10.Final-redhat-00001.jar http://old-registry.my-company.com/api
Import the
.zip
file into Service Registry 2.x using the import API:curl -X POST "http://new-registry.my-company.com/apis/registry/v2/admin/import" \ -H "Accept: application/json" -H "Content-Type: application/zip" \ --data-binary @registry-export.zip
Check that all the artifacts have been imported into the new 2.x registry by running these commands and comparing the count field:
curl "http://old-registry.my-company.com/api/search/artifacts"
curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
Additional resources
- For more details on the import/export REST API, see the Service Registry User Guide.
- For more details on the export tool for migrating from version 1.x to 2.x, see the Apicurio Registry export utility for 1.x versions.