Migração
@frozen
public struct Migration
Migration
instâncias encapsulam informações destinadas a facilitar a migração de um esquema.
Uma instância Migration
é passada para um bloco MigrationBlock
definido pelo usuário ao atualizar a versão de um Realm. Essa instância fornece acesso ao reconhecimento de data center antigos e novos, aos objeto no Realm e fornece funcionalidade para modificar o Realm durante a migração.
-
Enumera todos os objetos de um determinado tipo neste Realm, fornecendo as versões antigas e novas de cada objeto. As propriedades de um objeto podem ser acessadas usando a assinatura.
Declaração
Swift
public func enumerateObjects(ofType typeName: String, _ block: MigrationObjectEnumerateBlock)
Parâmetros
objectClassName
O nome da classe
Object
para enumerar.block
O bloco que fornece as versões antigas e novas de um objeto neste Realm.
-
Cria e retorna um
Object
do tipoclassName
no Realm que está sendo migrado.O argumento
value
é utilizado para preencher o objeto. Pode ser um objeto compatível com codificação key-value, uma array ou dicionário retornado dos métodos emNSJSONSerialization
ou umArray
contendo um elemento para cada propriedade gerenciada. Uma exceção será lançada se alguma propriedade obrigatória não estiver presente e essas propriedades não tiverem sido definidas com valores padrão.Ao passar um
Array
como argumentovalue
, todas as propriedades devem estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Declaração
Swift
@discardableResult public func create(_ typeName: String, value: Any = [:]) -> MigrationObject
Parâmetros
className
O nome da classe
Object
a ser criada.value
O valor utilizado para preencher o objeto criado.
Valor de retorno
O objeto recém-criado.
-
Exclui um objeto de um Realm durante uma migração.
É permitido chamar este método de dentro do bloco passado para
enumerate(_:block:)
.Declaração
Swift
public func delete(_ object: MigrationObject)
Parâmetros
object
Um objeto a ser excluído do Realm sendo migrado.
-
Exclui os dados da classe com o nome fornecido.
Todos os objetos da classe fornecida serão excluídos. Se a subclasse
Object
não existir mais em seu programa, todos os metadados restantes da classe serão removidos do Arquivo de Realm.Declaração
Swift
@discardableResult public func deleteData(forType typeName: String) -> Bool
Parâmetros
objectClassName
O nome da classe
Object
a ser excluída.Valor de retorno
Um valor booleano indicando se há algum dado para excluir.
-
Renomeia uma propriedade da classe fornecida de
oldName
paranewName
.Declaração
Swift
public func renameProperty(onType typeName: String, from oldName: String, to newName: String)
Parâmetros
className
O nome da classe cuja propriedade deve ser renomeada. Essa classe deve estar presente nos esquemas antigos e novos do Realm.
oldName
O nome antigo da propriedade a ser renomeada. Não deve haver uma propriedade com este nome na classe , conforme definido pelo novo esquema Realm .
newName
O novo nome da propriedade a ser renomeada. Não deve haver uma propriedade com este nome na classe , conforme definido pelo esquema Realm antigo.