About live migrations from GitHub Enterprise Server to GHE.com - GitHub Docs
https://docs.github.com/en/migrations/elm/about-live-migrations • 142 KB fetched Open original page
About live migrations from GitHub Enterprise Server to GHE.com - GitHub Docs Skip to main content
GitHub Docs Version: Free, Pro, & Team
Search or ask Copilot Search or ask Copilot
Select language: current language is English
Search or ask Copilot Search or ask Copilot
Open menu
Collapse sidebar Expand sidebar
Scroll breadcrumbs left
* Home
* Migrations
* Live migrations (GHES to GHE.com)
* About live migrations
Scroll breadcrumbs right
Migrations
*
*
* Overview
* GitHub's migration tooling
* Migrations within GitHub
* Plan your migration
* Migration paths
* Locked repositories
* Mannequins and user activity
* Programmatic repository imports
* Migrate from Azure DevOps
* Get started
* 1. Understand migrations
* 2. Manage access
* 3. Configure GitHub Enterprise Importer
* 4. Prepare to migrate
* 5. Migrate repositories
* 6. Follow-up tasks
* Key differences
* Migrate with GraphQL API
* Migrator role
* Import source code
* GitHub Importer
* About GitHub Importer
* Import a repository
* Command line
* About source code imports
* Local code
* External Git repo
* Subversion
* Mercurial
* Team Foundation Version Control
* GitHub Enterprise Importer
* Understand GitHub Enterprise Importer
* About GitHub Enterprise Importer
* Migrate from Bitbucket Server
* About migrations
* Overview of a migration
* Manage access
* Migrate repositories
* Migrate between GitHub products
* About migrations
* Overview of a migration
* Manage access
* Migrate from Enterprise Server
* Migrate repositories from GitHub.com
* Migrate organizations from GitHub.com
* Migrate from GitLab
* Get started
* 1. Understand migrations
* 2. Plan your migration
* 3. Manage access
* 4. Configure GitHub Enterprise Importer
* 5. Configure storage
* 6. Migrate repositories
* 7. Follow-up tasks
* Migrate with GraphQL API
* Migrator role
* Complete migration
* Access migration logs
* Reclaim mannequins
* Live migrations (GHES to GHE.com)
* About live migrations
* Prepare for your migration
* Migrate your repository
* Complete your migration
* Troubleshooting
* Migrated data reference
* ELM CLI reference
* ghe-migrator
* About ghe-migrator
* Export from GHES
* Export from GitHub.com
* Migrate data
* Troubleshoot migrations
* Troubleshoot migrations
About live migrations from GitHub Enterprise Server to GHE.com
How do live migrations minimize downtime for developers?
Copy as Markdown
In this article
* What is Enterprise Live Migrations?
* Differences from GitHub Enterprise Importer
* Overview of a migration
* Next steps
What is Enterprise Live Migrations?
Enterprise Live Migrations (ELM) is a service for migrating repositories from GitHub Enterprise Server to GitHub Enterprise Cloud with data residency (GHE.com). It is operated using an extension of the GitHub CLI.
Migrations are "live" because users can continue using the source repository during most of the migration process. After the repository data is initially collected, webhooks check for changes to the repository, such as new commits or updates to settings. These changes are reported to ELM and included in the migration.
An ELM migration includes a single repository. Organization-level data, such as organization settings, teams, and projects, are not included in the migration and must be reconfigured manually on the destination enterprise.
Differences from GitHub Enterprise Importer
ELM and GitHub Enterprise Importer (GEI) are separate tools that both support migrating repositories from GitHub Enterprise Server to GHE.com.
The main benefits of ELM are:
* Reduced developer downtime : During a migration with GEI, developers lose access to the repository for the duration of the migration. This downtime creates risks like blocked deployments or stalled feature work.
* Monorepo support : ELM is capable of migrating large, complex monorepos with deep histories. These often exceed the capacity of GEI.
* Better visibility : ELM provides detailed repository-level visibility into migration progress, surfacing granular failures so that you can be confident the migrated repository is an accurate replica.
However, because of the higher traffic load associated with live updates, ELM supports fewer concurrent migrations than GEI: up to 10 concurrent repository migrations from a single GitHub Enterprise Server instance, and 20 concurrent migrations per destination enterprise.
You may want to use both tools over the course of a platform migration, prioritizing the repositories that will benefit most from ELM.
Overview of a migration
A site administrator runs a migration using the GitHub CLI. Before running the migration, the operator must configure the GitHub Enterprise Server instance and provide personal access tokens with access to both GitHub Enterprise Server and the destination enterprise.
The high-level phases of a migration are:
* Creation : The site admin runs CLI commands to create and start the migration, specifying the source repository and destination.
* Preflight checks : The migration service verifies parameters, tokens, network connectivity, and repository configuration.
* Backfill : The ELM tool does an initial crawl to capture all repository data and sends it to the migration service on the destination platform. During the backfill phase, webhooks check for live updates to the repository as the migration continues.
* Cutover : The source repository is archived (made read-only) and any final live updates are sent to ELM. This is the downtime period for developers.
* Completion : The migration is finished. The site admin can check the data was migrated successfully.
* Follow-up : An organization owner performs follow-up tasks on the destination enterprise, such as reconfiguring organization settings and reattributing activity to users.
Next steps
To get ready to run a migration, see Preparing for your live migration from GitHub Enterprise Server to GHE.com .
Back to top
Help and support
Was this Doc helpful?
Yes No
Help us make GitHub Docs great!
All Docs are open source. See something that's wrong or unclear? Submit a pull request.
Make a contribution
Still need help?
Ask the GitHub community Contact support Expert services Blog
GitHub Inc. © 2026 Terms Privacy Status Pricing
Links found on this page
- Skip to main content [direct]
- GitHub Docs [direct]
- Migrations [direct]
- Live migrations (GHES to GHE.com) [direct]
- GitHub's migration tooling [direct]
- Migrations within GitHub [direct]
- Plan your migration [direct]
- Migration paths [direct]
- Locked repositories [direct]
- Mannequins and user activity [direct]
- Programmatic repository imports [direct]
- Get started [direct]
- 1. Understand migrations [direct]
- 2. Manage access [direct]
- 3. Configure GitHub Enterprise Importer [direct]
- 4. Prepare to migrate [direct]
- 5. Migrate repositories [direct]
- 6. Follow-up tasks [direct]
- Key differences [direct]
- Migrate with GraphQL API [direct]
- Migrator role [direct]
- About GitHub Importer [direct]
- Import a repository [direct]
- About source code imports [direct]
- Local code [direct]
- External Git repo [direct]
- Subversion [direct]
- Mercurial [direct]
- Team Foundation Version Control [direct]
- About GitHub Enterprise Importer [direct]
- About migrations [direct]
- Overview of a migration [direct]
- Manage access [direct]
- Migrate repositories [direct]
- About migrations [direct]
- Overview of a migration [direct]
- Manage access [direct]
- Migrate from Enterprise Server [direct]
- Migrate repositories from GitHub.com [direct]
- Migrate organizations from GitHub.com [direct]
- Get started [direct]
- 1. Understand migrations [direct]
- 2. Plan your migration [direct]
- 3. Manage access [direct]
- 4. Configure GitHub Enterprise Importer [direct]
- 5. Configure storage [direct]
- 6. Migrate repositories [direct]
- 7. Follow-up tasks [direct]
- Migrate with GraphQL API [direct]
- Migrator role [direct]
- Access migration logs [direct]
- Reclaim mannequins [direct]
- Prepare for your migration [direct]
- Migrate your repository [direct]
- Complete your migration [direct]
- Troubleshooting [direct]
- Migrated data reference [direct]
- ELM CLI reference [direct]
- About ghe-migrator [direct]
- Export from GHES [direct]
- Export from GitHub.com [direct]
- Migrate data [direct]
- Troubleshoot migrations [direct]
- Make a contribution [direct]
- Ask the GitHub community [direct]
- Contact support [direct]
- Expert services [direct]
- Blog [direct]
- Terms [direct]
- Privacy [direct]
- Status [direct]
- Pricing [direct]
|
|