Determining the best way to migrate your content between ArcGIS Online and ArcGIS Enterprise accounts can be complex. First, what type of migration are you trying to accomplish? What type of content do you want to migrate? How many items are you looking to migrate? Why are you looking to migrate? And finally, what technical skills in programming exist within your organization? This first of two blog posts is meant to introduce you to the tools available to migrate content between two ArcGIS Online accounts.
Have you ever had to migrate your content between your different ArcGIS Online or ArcGIS Enterprise accounts? These migrations can occur as a result of a job change, a service move or a decision to switch from ArcGIS Online to ArcGIS Enterprise or vice-versa, for example to have a pre-production environment and a production environment that allows access by the general public. When making a decision, there are several things to consider. Mainly:
- Which environments do we want to migrate between? Two ArcGIS Online accounts? An ArcGIS Online account and an ArcGIS Enterprise account? Two ArcGIS Enterprise accounts?
- What types of content will be migrated? Hosted feature layers? Interactive maps? Web applications?
- How many items need to be migrated?
- Do you have someone in your organization who is proficient with the ArcGIS for Python API?
Throughout this post, we will use the term source to describe the account from which the data originated and the term target as the destination account for the data.
Although there are several solutions, it is important to test and document the migration, as there is no perfect solution and some applications require custom migration. In addition, technologies change rapidly, so it is important to stay on top of new products and methodologies. You can always contact Esri Canada's Professional Services team for assistance with the migration.
A partnered collaboration can be a good solution to migrate data between two ArcGIS Online accounts. This consists of account A (the source) sharing its content with account B (the target) in a collaborative group. Once shared, the content can be exported locally, creating a hosted copy on account B. Collaboration has the advantage of being a fairly simple solution for a few files at a time, but will become time-consuming and inefficient if the migrated content is large.
In order for the target account to be able to download the information, the administrator of account A must adjust the item's settings to allow the content to be exported. Account A can then delete the content in order to keep its hosting credits, as the new item is hosted on account B.
Note that applications must reference the URLs of the hosted feature services that are linked to them. For example, once the interactive map and feature layers from account A are exported locally to account B, it will be necessary to ensure that the feature layers are copies of account B and not the original data from account A. This technique is primarily effective for copying feature layers and interactive maps, but does not allow any application to be exported.
For more information on partnered collaboration, you can watch this webinar available in English and French.
ArcGIS Online Assistant and ArcGIS Assistant (Beta)
ArcGIS Online Assistant is a tool used mainly to migrate data and manage the content of members and groups within the organization. The operation is quite simple. An administrator of ArcGIS Online account A (the source) accesses his account. Once in ArcGIS Online Assistant, the administrator can choose the "Copy Content" option. They will be prompted to connect to account B (the target).
The administrator of account A can then transfer its content to account B. This tool is useful to migrate content such as:
- traditional ArcGIS StoryMaps
- traditional applications
- traditional ArcGIS Dashboards
- hosted feature layers
For hosted feature layers, the administrator has two choices: (1) make a full copy where the layer, once migrated, will have a URL and ID specific to account B or (2) copy as a reference (simple copy), where the URL and ID on account B will refer to the layer hosted on account A. This second method is therefore not considered a "true" migration. As with partnered collaboration, when migrating web maps and applications, the administrator of account B will need to manually change the URL for each of the feature layers consumed by the web map or application, as these will still reference the URLs of account A.
Officially, ArcGIS Online Assistant is not a tool supported by Esri. This is an internally developed tool to facilitate the work of the professional services team (see the user guide). As such, the tool did not evolve as quickly as the products the company supported and therefore lost functionality as new products came along.
Currently (Spring 2022), Esri's Professional Services team is developing a new product that will allow migration for newer applications. ArcGIS Assistant, currently in Beta mode, is designed to replace the old ArcGIS Online Assistant. In addition to offering the advantage of being able to migrate more modern applications, ArcGIS Assistant also adds the ability to migrate multiple items at once rather than individually. Currently, only the copy as a reference (simple copy) is available in ArcGIS Assistant for hosted feature layers. This means that if your goal is to copy a hosted feature layer from account A to account B, this functionality is not yet available, so you will need to use ArcGIS Online Assistant and ArcGIS Assistant together. For more information on the progress of the tool, visit github.
Important: As mentioned above, while this tool may be sufficient for your needs, it is not supported by Esri, so there will be no support team if you ever have trouble or accidentally change your content. This tool can be used for ArcGIS Online, ArcGIS Enterprise or to transfer between the two.
The ArcGIS Python API
ArcGIS API for Python is the third option for migration and allows you to make a complete copy of all content, without having to modify URLs or IDs. Using the Jupyter notebook, accessible through ArcGIS Online, ArcGIS Pro or ArcGIS Enterprise (with configuration), the ArcGIS API for Python allows the migration of the following items:
- hosted web application (traditional and new)
- interactive map;
- hosted feature layer
- hosted feature layer view
- feature layer
- Survey123 form
- Workforce project;
- ArcGIS StoryMaps (classic);
- ArcGIS Dahsboards;
- QuickCapture project;
- ArcGIS Notebook;
- data file (example).
Like the other migration methods, the transfer is from a source organization (e.g., Account A) to a target hub (e.g., Account B). The function "clone_items()" allows all the content and applications to be cloned. Let's take the example of a web application. The web application consumes a web map that consumes one or more feature layers.
Application cloning has the advantage of transferring all content associated with the application, whether it is a solution such as ArcGIS StoryMaps, ArcGIS Experience Builder or even ArcGIS Dashboards. Unlike the two methods mentioned above, by cloning an application or web map, the hosted feature layers will automatically follow without any administrator intervention and will already reference the target account URL. This method is therefore much more efficient for the simultaneous migration of multiple items.
ArcGIS API for Python also allows the migration of groups which can facilitate the management of internally hosted content and the sharing of content to public in a production environment. Some specific examples of clone migration can be found on Esri DevSummit.
This method allows for migration between ArcGIS Online, ArcGIS Enterprise, or a combination of both organizations. For more information on cloning using the ArcGIS API for Python, you can refer to this blog post written earlier by a colleague from Esri Canada.
This article covers the three main methods used to migrate content between two ArcGIS Online accounts. There is the partnered collaboration, ArcGIS Online Assistant (and ArcGIS Assistant Beta) and ArcGIS API for Python. While they each have their advantages and disadvantages, it is important to thoroughly test the URL links of each item following the migration to ensure that it was successful. It is important to document which items have been successfully migrated, as a full migration of your content may require a combination of the methods presented in this blog. It is also important to test before completing the migration, as some errors may be irreversible. In the following sections, we will discuss migration between ArcGIS Online and ArcGIS Enterprise accounts and between two ArcGIS Enterprise accounts.
Other interesting resources
This post was written in French by Tristan Gingras-Hill and can be viewed here.