简体   繁体   English

如何在现有领域数据库中添加新表?

[英]How can i add new table in existing realm database?

I am using realm 5.0.0 I want to add new table in existing data base how can i do that?我正在使用realm 5.0.0我想在现有数据库中添加新表我该怎么做?

I have tried to find out solution but I found how to edit table but don't found how can i add new Table in realm in migration.我试图找出解决方案,但我找到了如何编辑表,但没有找到如何在迁移的领域中添加新表。

Realm.init(this);
        RealmConfiguration config = new RealmConfiguration.Builder()
                .name("myrealm.realm")
                .schemaVersion(2)
                .migration(new RealmMigration() {
                    @Override
                    public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
                        if (oldVersion == 0) {
                            RealmObjectSchema personSchema = realm.getSchema().get("SKUItem");
                            personSchema
                                    .removeField("created_date")
                                    .removeField("modification_date")
                                    .addField("created_date", String.class)
                                    .addField("modification_date", String.class)
                            ;
                        } if (oldVersion == 1) {
                            // Here I want to add new Table 
                        }
                    }
                })
                .build();
        Realm.setDefaultConfiguration(config);

It would be something like this:它会是这样的:

// Create a new class
schema.create("NewTable")
    .addField("id", int.class, FieldAttribute.PRIMARY_KEY)
    .addField("name", String.class, FieldAttribute.INDEXED);
olderVersion++;

Just add "migration.create("NewTableName", value: [])" in your migrationBlock.只需在您的迁移块中添加“migration.create("NewTableName", value: [])”。

Example:例子:

var realm: Realm?
init() {
    do {
        let configuration = Realm.Configuration(schemaVersion: 2,
        migrationBlock: { migration, oldSchemaVersion in
            if (oldSchemaVersion == 1) {
                migration.create("ConnectedDeviceData", value: [])
            }
        })
        realm = try Realm(configuration: configuration)
    } catch {
      print("Realm Initialization Error: \(error)")
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM