What to Choose - Instance Migrator or Database Migrator
What to Choose - Instance Migrator or Database Migrator
Use this page to choose the correct migration tool for Nexus Repository. Instance Migrator and Database Migrator solve different migration problems.
Use Instance Migrator when you want to move configuration and content from a source instance to a target instance. Note that it migrates only the hosted repository content and not proxy repository content.
Use Database Migrator when you need to migrate your database in a self-hosted deployment.
Choose a Migration Path by Source and Target
Instance Migrator
A command-line application that facilitates live migration of Nexus Repository configurations and assets from one running Nexus instance to another.
Characteristics:
- Live migration: Both source and target instances must be running
- API-based: Uses REST APIs. See Instance configuration in Nexus Repository API Reference
- Configuration + Content: Migrates both configuration data and hosted repository assets
- State tracking: Maintains migration state for resumability
- Incremental migration: Supports continuous polling for new content post-migration
- Platform agnostic: Works with Cloud and Self-Hosted targets
- Automatic decryption: The encrypted secrets are decrypted automatically through the Migrator Cipher
Database Migrator
An offline database transformation utility that converts Nexus Repository database schemas between different database platforms.
Characteristics:
- Offline migration: Requires both source and target instances to be shut down during migration
- Database-level: Operates directly on database files or connections
- Metadata-focused: Migrates database schema and metadata
- Single run: Completes migration in one execution and does not provide resumability
- Java-based: Runs as a standalone Java tool by using JDBC connections
FAQs
What tool should I use when my source and target are in different networks? Use Instance Migrator when the source and target are in different data centers, networks, or environments where direct database access is not practical. It migrates the content between different blob store types or storage locations.
Which tool should I use if I need minimal downtime? Use Instance Migrator. It supports migration while the source remains running and can continue polling for newly added content after the initial transfer.
Which tool should I use if I need transfer validation and retry support? Use Instance Migrator. It supports asset-level transfer validation, detailed logging by repository, and retry of failed asset transfers.
Which tool should I use for OrientDB self-hosted to PostgreSQL self-hosted when the blob store changes? Use Instance Migrator. If you are changing blob store type or location, such as File to S3, you need content migration in addition to configuration migration.
Which tool should I use for OrientDB self-hosted to PostgreSQL self-hosted when the blob store stays in the same location? Use Database Migrator if the blob store remains accessible to the target instance. In this case, the migration is primarily a database platform change. Instance Migrator can also work, but Database Migrator is the better fit for this scenario.
What is the major limitation of Database Migrator for self-hosted PostgreSQL targets? Database Migrator does not move blob content. If the blob store paths differ between source and target, the blob stores are not migrated unless the target can still access the same blob content. Use Instance Migrator instead.
Which tool should I use for decrypting secrets automatically at target location? Use Instance Migrator. It supports automatic secret decryption and re-encryption at the target through the migrator cipher.
Do users need to perform any configuration after migration? With Instance Migrator, yes. Because it migrates to a new target instance, you may need to configure items such as blob stores, LDAP, or SAML on the target. With Database Migrator, usually not. Because it migrates the database for the same deployment, it generally does not require the same target-side setup.