---
title: SchemaMigrationPlan
framework: swiftdata
role: symbol
role_heading: Protocol
path: swiftdata/schemamigrationplan
---

# SchemaMigrationPlan

An interface for describing the evolution of a schema and how to migrate between specific versions.

## Declaration

```swift
protocol SchemaMigrationPlan : SendableMetatype
```

## Topics

### Managing versioned schemas

- [schemas](swiftdata/schemamigrationplan/schemas.md)
- [VersionedSchema](swiftdata/versionedschema.md)

### Managing migration stages

- [stages](swiftdata/schemamigrationplan/stages.md)
- [MigrationStage](swiftdata/migrationstage.md)

## Relationships

### Inherits From

- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Creating a model container

- [init(for:migrationPlan:configurations:)](swiftdata/modelcontainer/init(for:migrationplan:configurations:)-1czix.md)
- [init(for:migrationPlan:configurations:)](swiftdata/modelcontainer/init(for:migrationplan:configurations:)-8s4ts.md)
- [init(for:migrationPlan:configurations:)](swiftdata/modelcontainer/init(for:migrationplan:configurations:)-qof9.md)
- [PersistentModel](swiftdata/persistentmodel.md)
- [ModelConfiguration](swiftdata/modelconfiguration.md)
- [Schema](swiftdata/schema.md)
