总是需要迁移吗?
Is migration always needed?
现在我在 AppDelegate.m 中的代码是:
[MagicalRecord setupAutoMigratingCoreDataStack];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"db.sqlite"];
费用高吗?是否存在任何代码,例如:
if (DB.version == newVersion) {
[MagicalRecord setupAutoMigratingCoreDataStack];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"db.sqlite"];
}
else {
[MagicalRecord setupCoreDataStack];
[MagicalRecord setupCoreDataStackWithStoreNamed:@"db.sqlite"];
}
这会节省一些性能而不是每次都强制迁移?还是 MagicalRecord/CoreData 在内部处理这个 if 语句?
Core Data 不会进行自动迁移,除非有必要。第一个版本没有 "force" 迁移。 Core Data 总是检查它是否可以使用当前版本的数据模型加载持久存储文件。唯一的区别是如果版本不匹配会发生什么。如果它们确实匹配,则没有额外的迁移相关工作。
现在我在 AppDelegate.m 中的代码是:
[MagicalRecord setupAutoMigratingCoreDataStack];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"db.sqlite"];
费用高吗?是否存在任何代码,例如:
if (DB.version == newVersion) {
[MagicalRecord setupAutoMigratingCoreDataStack];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"db.sqlite"];
}
else {
[MagicalRecord setupCoreDataStack];
[MagicalRecord setupCoreDataStackWithStoreNamed:@"db.sqlite"];
}
这会节省一些性能而不是每次都强制迁移?还是 MagicalRecord/CoreData 在内部处理这个 if 语句?
Core Data 不会进行自动迁移,除非有必要。第一个版本没有 "force" 迁移。 Core Data 总是检查它是否可以使用当前版本的数据模型加载持久存储文件。唯一的区别是如果版本不匹配会发生什么。如果它们确实匹配,则没有额外的迁移相关工作。