"description": "Migration can be used when users want to move their data from one instance to another."
}
# Migration Extension
Sometimes, users may want to move their data from one instance to another. This could be due to a change in administration, a desire to be closer to friends, or any other reason. Migration can be done using the migration extension. {{ className: 'lead' }}
## Behaviour
Migration happens in three steps:
### Prepare the New Account
- The user creates an account on the new instance, and puts the URI of the old account in the `previous` field of the new account.
### Request Migration
- The user requests migration from the old instance. The old instance checks that the `previous` field is set, and creates a migration entity.
- The migration entity is then distributed to every instance that interacts with the old instance, including the new instance.
- All instances that receive a verified migration entity (i.e. one where the `previous` field is correctly set on the new account) and support migration **must** then move all relationships (followers, followings, etc) from the old account to the new account in *their* internal database.
### Complete Migration
- The old instance sets the `new` field of the user to the URI of the new account, and marks it as "disabled" in its internal database.