移行

@frozen
public struct Migration

Migration インスタンスは、スキーマ移行を容易にするために情報をカプセル化します。

Realm のバージョンを更新するときに、 Migrationインスタンスはユーザー定義のMigrationBlockブロックに渡されます。 このインスタンスは、古いデータベース スキーマと新しいデータベース スキーマ、Realm 内のオブジェクトへのアクセスを提供し、移行中に Realm を変更する機能を提供します。

プロパティ

移行中のオブジェクトの変更

  • この Realm 内の指定されたタイプのすべてのオブジェクトを列挙し、各オブジェクトの古いバージョンと新しいバージョンの両方を提供します。 オブジェクトのプロパティには、サブスクリプションを使用してアクセスできます。

    宣言

    Swift

    public func enumerateObjects(ofType typeName: String, _ block: MigrationObjectEnumerateBlock)

    パラメーター

    objectClassName

    列挙するObjectクラスの名前。

    block

    この Realm 内のオブジェクトの古いバージョンと新しいバージョンの両方を提供するブロック。

  • 移行されている Realm にタイプclassNameObjectを作成して返します。

    value引数はオブジェクトにデータを入力するために使用されます。 キーと値に準拠したオブジェクト、 NSJSONSerializationのメソッドから返された配列または辞書、または管理されているプロパティごとに 1 つの要素を含むArrayにすることができます。 必須 プロパティが存在せず、それらのプロパティがデフォルト値で定義されていない場合は、例外がスローされます。

    value引数としてArrayを渡す場合、すべてのプロパティが存在し、有効で、モデルで定義されたプロパティと同じ順序にある必要があります。

    宣言

    Swift

    @discardableResult
    public func create(_ typeName: String, value: Any = [:]) -> MigrationObject

    パラメーター

    className

    作成するObjectクラスの名前。

    value

    作成されたオブジェクトを入力するために使用される値。

    戻り値

    新しく作成されたオブジェクト。

  • 移行中に Realm からオブジェクトを削除します。

    このメソッドは、 enumerate(_:block:)に渡されるブロック内から呼び出すことが許可されます。

    宣言

    Swift

    public func delete(_ object: MigrationObject)

    パラメーター

    object

    移行される Realm から削除するオブジェクト。

  • 指定された名前のクラスのデータを削除します。

    指定されたクラスのすべてのオブジェクトが削除されます。 Objectサブクラスがプログラムに存在しなくなると、クラスの残りのメタデータは Realm ファイルから削除されます。

    宣言

    Swift

    @discardableResult
    public func deleteData(forType typeName: String) -> Bool

    パラメーター

    objectClassName

    削除するObjectクラスの名前。

    戻り値

    削除するデータがあったかどうかを示すブール値。

  • 指定されたクラスのプロパティの名前をoldNameからnewNameに変更します。

    宣言

    Swift

    public func renameProperty(onType typeName: String, from oldName: String, to newName: String)

    パラメーター

    className

    プロパティの名前を変更するクラスの名前。 このクラスは、古い Realm スキーマと新しい Realm スキーマの両方に存在する必要があります。

    oldName

    名前を変更するプロパティの古い名前。 新しい Realm スキーマによって定義されるクラス内に、この名前のプロパティが存在しないようにしてください。

    newName

    名前を変更するプロパティの新しい名前。 古い Realm スキーマによって定義されているクラス内に、この名前のプロパティが存在しないようにしてください。