<!--
{
  "documentType" : "article",
  "framework" : "CoreData",
  "identifier" : "/documentation/CoreData/manual-migrations",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Manual migrations"
}
-->

# Manual migrations

Migrate elaborate data models with changes that go beyond the capabilities of both lightweight and staged migrations.

## Topics

### Entity Mapping

[`NSMigrationManager`](/documentation/CoreData/NSMigrationManager)

A migration manager instance that performs a migration of data from one persistent store to another using a given mapping model.

[`NSMappingModel`](/documentation/CoreData/NSMappingModel)

A model instance that specifies how to map a model from a source to a destination managed object model.

[`NSEntityMapping`](/documentation/CoreData/NSEntityMapping)

A mapping instance that specifies how to map an entity from a source to a destination managed object model.

[`NSEntityMigrationPolicy`](/documentation/CoreData/NSEntityMigrationPolicy)

A policy instance that customizes the migration process for an entity mapping.

[`NSEntityMappingType`](/documentation/CoreData/NSEntityMappingType)

The types for mapping an entity between a source model and a destination model.

[`NSPropertyMapping`](/documentation/CoreData/NSPropertyMapping)

A mapping instance that specifies in a model how to map from a property in a source entity to a property in a destination entity.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)