выполнить миграцию областей для нескольких файлов .realm

У меня есть несколько файлов области (по одному на каждого пользователя, вошедшего в мое приложение), и мне нужно запустить миграцию для каждого файла области в файловой системе

      RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];

  config.schemaVersion = 1;
  config.migrationBlock = ^(RLMMigration *migration, uint64_t oldSchemaVersion) {

    if (oldSchemaVersion < 1) {
    //do the same changes for all file.realm in the filesystem 
    }
  };


  [RLMRealmConfiguration setDefaultConfiguration:config];

  [RLMRealm defaultRealm];

как выполнить миграцию области для каждой из баз данных файловой системы, а не только для файла области по умолчанию?


person Spaceghost    schedule 05.10.2015    source источник


Ответы (1)


+[RLMRealm migrateRealm:] выполняет миграцию для Realm по пути, указанному в конфигурации:

RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
config.schemaVersion = 1;
config.migrationBlock = ...;
config.path = @"path 1";
[RLMRealm migrateRealm:config];
config.path = @"path 2";
[RLMRealm migrateRealm:config];
person jpsim    schedule 05.10.2015
comment
config.path = @path 1; должно быть имя файла .realm? или nsurl в файл области, спасибо за этот ответ! - person Spaceghost; 06.10.2015
comment
path - это строковый путь к файлу области. то же значение, заданное -[RLMRealm path]. - person jpsim; 06.10.2015
comment
Возможно, это тоже пригодится: stackoverflow.com/questions/33828851/ - person Wojtek Dmyszewicz; 20.11.2015