移行
@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 にタイプ
className
のObject
を作成して返します。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 から削除するオブジェクト。
-
指定されたクラスのプロパティの名前を
oldName
からnewName
に変更します。宣言
Swift
public func renameProperty(onType typeName: String, from oldName: String, to newName: String)
パラメーター
className
プロパティの名前を変更するクラスの名前。 このクラスは、古い Realm スキーマと新しい Realm スキーマの両方に存在する必要があります。
oldName
名前を変更するプロパティの古い名前。 新しい Realm スキーマによって定義されるクラス内に、この名前のプロパティが存在しないようにしてください。
newName
名前を変更するプロパティの新しい名前。 古い Realm スキーマによって定義されているクラス内に、この名前のプロパティが存在しないようにしてください。