Migrating Select Content Between AEM Instances in Different Environments | Community
Skip to main content
toshbot
Level 2
December 20, 2017

Migrating Select Content Between AEM Instances in Different Environments

  • December 20, 2017
  • 4 replies
  • 5968 views

Hi Folks,

I work on a project where authors upload and author content in a lower environment, and when done, want that content moved to our production environment.

Doing this involves building package(s) of content that the authors want moved. If there are few filters, we build packages manually. If a lot of content needs to be moved, we've developed a tool using JcrPackageManager to help assemble a package from a list of filters. But after this, the package is manually built, downloaded, uploaded and installed to the target instance.

Is there a way to bypass packages and create a servlet tool to move a specific list of assets directly from a source instance to a target instance, given that these instances live in different environments?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

4 replies

edubey
Level 10
December 21, 2017
toshbot
toshbotAuthor
Level 2
December 21, 2017

I have not explored this option yet. I will take a look.

Question - can you read a file of paths into this tool? Can paths be validated as they are processed - aka if some path filters are faulty/missing in the repo, then flag/log them and continue with the remaining list of paths?

toshbot
toshbotAuthor
Level 2
December 21, 2017

The vlt tool cannot do that - like i said - best practice is to package up your content, set the filters with the content in the JCR you want included in the package and then build the package. AEM is built to work this way


So it sounds like leveraging the Package Manager API is the ideal approach then. Here's a tack on question - can I, through the AEM API, POST and install the package to a target instance after it has been built on the source (as opposed to using curl commands)?

smacdonald2008
Level 10
December 21, 2017

Packages are still the best way to move content from 1 instance to another. AEM Also exposes a Package Manager API that lets you programmatically create packages --

"The CQ5 Quickstart and Web Application."

See PackageManager API

toshbot
toshbotAuthor
Level 2
December 21, 2017

Hi smacdonald2008,

We've actually already created a custom tool that uses JcrPackageManager to read in a CSV file with filters and assemble a package. I still need to manually build the package, and then use curl commands to move the package to the target server, upload to the target instance, install on the target instance, and tree-activate the assets. I would like to cut out all that work and just move assets directly to the target instance and replicate them.

smacdonald2008
Level 10
December 21, 2017

Sure you can. Build a custom servlet that uses AssetManager API. Then perform a Get iperation to invoke the servlet

joerghoh
Adobe Employee
Adobe Employee
December 21, 2017

You can also try Grabbit (haven't used it myself).

GitHub - TWCable/grabbit: Grabbit - Fast Content Sync tool for AEM/CQ

Jörg

toshbot
toshbotAuthor
Level 2
December 21, 2017

Hi Jorg,

As part of an application migration to a new infrastructure, we did try to use Grabbit, but it did not work for us. It probably came down to firewall rules on our systems (everything is kinda messed up on our new infrastructure )

So for the purposes of doing routine content migration, I'm not sure if Grabbit will do the trick for us.

viveksachdeva
Community Advisor
Community Advisor
January 5, 2018

You could post you issues in grabbit github repo.. From what I know that is the fastest of available options and easy to automate. So worth a try to see it your issue can be fixed.