Java 重命名领域表
我的王国计划中有一个Java 重命名领域表,java,android,realm,Java,Android,Realm,我的王国计划中有一个礼物表。现在我需要将Gift.class重命名为UserBonus.class,并添加一些新参数(不是问题)。正确的方法是什么 我知道realm.getTable()可以将表返回给我,问题是模式中存在旧的Gift,但事实上我没有Gift.class(现在是UserBonus,而getTable()将返回给我新创建的表),因此我无法获取旧的Gift表值并将它们移动到新的Bonus表 我看到它的唯一方法是,将其留空Gift.class,并仅用于迁移 谢谢你的建议, Yakiv目前
礼物
表。现在我需要将Gift.class
重命名为UserBonus.class
,并添加一些新参数(不是问题)。正确的方法是什么
我知道realm.getTable()
可以将表返回给我,问题是模式中存在旧的Gift
,但事实上我没有Gift.class
(现在是UserBonus
,而getTable()
将返回给我新创建的表),因此我无法获取旧的Gift表值并将它们移动到新的Bonus表
我看到它的唯一方法是,将其留空Gift.class
,并仅用于迁移
谢谢你的建议,Yakiv目前,我确实按照以下方式实施了它:
- 添加了新的
UserBonus.class
- 将@Deprecated添加到
Gift.class
- 将所有数据从
表复制到Gift
表UserBonus
// added bonus types Table userBonus = realm.getTable(UserBonus.class); userBonus.addColumn(ColumnType.STRING, "localId"); userBonus.addColumn(ColumnType.INTEGER, "type"); userBonus.addColumn(ColumnType.INTEGER, "date"); userBonus.addColumn(ColumnType.STRING, "userName"); userBonus.addColumn(ColumnType.STRING, "userNumber"); userBonus.addColumn(ColumnType.STRING, "credits"); // move Gift to UserBonus RealmResults<Gift> gifts = realm.where(Gift.class).findAll(); for (Gift gift :gifts) { userBonus.add( gift.getLocalId(), UserBonus.TYPE_FRIEND, gift.getDate(), gift.getUserName(), gift.getUserNumber(), gift.getCredits() ); } realm.where(Gift.class).findAll().clear();
//添加了奖金类型 表userBonus=realm.getTable(userBonus.class); userBonus.addColumn(ColumnType.STRING,“localId”); userBonus.addColumn(ColumnType.INTEGER,“type”); userBonus.addColumn(ColumnType.INTEGER,“日期”); userBonus.addColumn(ColumnType.STRING,“用户名”); userBonus.addColumn(ColumnType.STRING,“userNumber”); userBonus.addColumn(ColumnType.STRING,“credits”); //将礼物移动到用户奖金 RealmResults gives=realm.where(Gift.class).findAll(); 用于(礼物:礼物){ userBonus.add( gift.getLocalId(), UserBonus.TYPE_FRIEND, gift.getDate(), gift.getUserName(), gift.getUserNumber(), gift.getCredits() ); } realm.where(Gift.class).findAll().clear();
RealmSchema schema = Realm.getInstance().getSchema();
schema.rename("OldModelName", "NewModelName");
它应该会起作用
您还可以看到迁移中的所有功能(从2015年6月25日起)——