# Live migration to Atlas
`mongomirror` is deprecated for modern versions; the supported path is Atlas Live Migration (managed mongosync) or standalone mongosync for large or complex cases.
## Steps
1. Create the destination Atlas cluster (M10+; not Free or Flex) on the same or newer MongoDB version as the source.
2. Atlas UI: start a live migration. Choose pull (Atlas reaches into your source; needs firewall access) or push (your side pushes out; for restrictive networks).
3. Let the initial sync complete, then let it tail the oplog until lag is near zero. Do not cut over while lag is high.
4. Cutover window: stop writes to the source, wait for lag to hit zero, point the app connection string at Atlas, restart the app, verify writes land in Atlas.
5. Keep the source running read-only for a retention period as the rollback path.
## Rules
- The destination must have no overlapping namespaces, or the migration fails before starting.
- The migration user needs the `atlasAdmin` role on the destination.
- Source clusters on 6.0+ must use live migration or mongosync; `mongomirror` does not support 6.0+ to 6.0+.
- Test the whole procedure against a staging source first, including the cutover.
## Verify
Document counts match per collection, indexes exist on the destination, the app writes and reads correctly, and lag was zero at cutover (check the migration dashboard history).