The path for migrating content from one Connect server to another is sub-optimal today. We have a few things on our roadmap that should improve that workflow.
That said, it is possible to do so. On Connect, the manifest file, packrat.lock file, and dependencies (code, data, etc.) are all stored in a bundle. Further, the Connect UI gives an option for collaborators to download the source bundle.
The bundle contains everything necessary to migrate the content to another Connect server. The steps for doing so are outlined below:
- Download the source bundle for app x1 from Connect server a
- Untar the source bundle and enter the directory
packrat::restore() to rebuild the publishing environment locally
- Publish the application to Connect server b (either using push-button deployment or the
rsconnect package directly)
Obviously the same pattern could be followed from the original environment where development took place. However, this process ensures that the version deployed to server B is the same that was deployed to server A.
Many of the pain points in steps 3 and 4 are on our roadmap for improvement. The
packrat::restore() step, especially, can be time consuming and annoying for a non-R-user or admin to do, since it involves installing all of the different package versions that will be used on Connect. There are directions for doing this type of thing on a CI server: http://docs.rstudio.com/connect/admin/appendix-ci.html . While not directly relevant, some of the configuration may be helpful.