【发布时间】:2017-10-09 03:01:50
【问题描述】:
我们有多个相互独立且依赖于核心库的 android 库。核心库有CoreRealmManager,负责所有领域的操作。
应用程序 | --- 库模块-a | \-- 库模块-c | \-- 库核心 | | -x- lib-module-b | \-- 库核心 | | --- 库模块-c | \-- 库核心 | | --- 库模块-d | \-- 库核心 | | --- 库核心这些库可以选择性地添加到应用程序中,并且应用程序也可以选择性地具有 RealmClasses。初始化时每个库在调用领域之前调用CoreRealmManager.addModule(Object additionalModule)。
如果多个库和应用想要迁移,则在给定时间点。如何实现? Realm 仅支持 Single RealmMigration。
@NonNull
static RealmConfiguration.Builder getConfigBundle() {
RealmConfiguration.Builder builder = new RealmConfiguration.Builder();
builder.schemaVersion(DB_VERSION)
.modules(Realm.getDefaultModule(),
// Add additional library modules
getAdditionalModules());
if (BuildConfig.DEBUG) {
builder.deleteRealmIfMigrationNeeded();
} else {
// Set migration manager
builder.migration(new MigrationManager()); // <-- Support multiple migration manager?
byte[] secretKey = getSecretKey();
if (secretKey != null) {
builder.encryptionKey(secretKey);
}
}
return builder;
}
【问题讨论】:
-
在单个 MigrationManager 中做所有事情有什么问题?
-
遵循复合设计模式,就像我在stackoverflow.com/a/45592632/2413303 中提到的多个
initialData()一样
标签: android realm android-library realm-migration