To copy single repository from old instance to new

Thanks Matthew for your quick response, but is there any chance that only copy the artifacts from the old one to a new Nexus 3 installation? it is not possible for me at least do a previous upgrade from 1.x to 2.x since it is actually running in a very old version of Ubuntu and it is a production server (I feel like I got a bomb between my hands)

I know this is an older thread. But I had to upgrade the underlying os of my nexus 3 instance. I created a script to recreate my proxy repos.

But for the hosted ones I needed to copy over the assets.
I created a small go script that downloaded the assets from one instance. And uploaded them in the same structure to the second instance.

the script can be found here if any1 still has some usage for it:
https://gist.github.com/negast/8d4f8b6512c4835b2d62670fbf8bdc3f

I didn’t find a script that did this yet or something in the official docs.

Nexus Repository Manager 3 now has export and import tasks which you can use to move your hosted assets.

https://help.sonatype.com/repomanager3/system-configuration/tasks/repository-export

https://help.sonatype.com/repomanager3/system-configuration/tasks/repository-import

1 Like

Ah, the docs don’t indicate it but those import/export tasks are a pro-only feature.

Hello,

I would like to know if it’s possible to export a specific proxy repository from a Nexus OSS instance that has internet access and import it into another Nexus OSS instance that doesn’t have internet access.

For example, if I need a package that I retrieve from the internet-connected instance, knowing that this instance only has proxy repositories, I want to be able to export and import only the updated proxy repository. This way, I can avoid having to perform a full backup and restore, which would overwrite the private packages I have pushed to hosted repositories on the offline instance.

Otherwise, my only option is to do a full backup and restore every time I fetch a new package from the internet, but this would mean that I have to manually re-push all my private packages to the different hosted repositories each time.

Thank you

With PRO there are export and import tasks. With OSS the only alternative I can suggest is manually downloading the package(s) and uploading them to the internal instance.

Hello, thank you for your quick response. However, I’ve found a solution.

Each repository is linked to its own blob store. So, when I update a repository, I only move the content of the relevant folder that corresponds to the blob store. Since the database references the blobs (just to note, I’m using an external PostgreSQL database), I run the ā€œRepair - Reconcile component database from blob storeā€, on the target instance, task to sync the database with the new content retrieved from the blob store.

What do you think of this approach? Is it scalable and maintainable?

Hello, please respond about my solution. Do you think it’s scalable ? Maintainable ?

The time required will increase linearly with the number of files in Nexus. So large systems can take a long time to synchronize.