Chapter 2. Migrating Apicurio Registry data
Chapter 2. Migrating Apicurio Registry data Migrating data to Apicurio 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 Apicurio 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 Apicurio Registry. This identifier must be preserved during registry data migration. Apicurio 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. Apicurio Registry 1.1 does not provide an import/export API. However, version 2.x provides an export tool compatible with Apicurio 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 Apicurio Registry instances of the 1.1 server you are exporting from and the 2.x server you are importing into. Download the Apicurio 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 Apicurio Registry 1.1 using the exportV1 tool. This generates a registry-export.zip file in your current directory: java -jar apicurio-registry-utils-exportV1-2.6.5.Final-redhat-00001.jar http://old-registry.my-company.com/api Import the .zip file into Apicurio 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 Red Hat build of Apicurio 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 .
java -jar apicurio-registry-utils-exportV1-2.6.5.Final-redhat-00001.jar http://old-registry.my-company.com/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 curl "http://old-registry.my-company.com/api/search/artifacts" curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"