2016-01-20 17 views
1

我已經使用了領域數據庫(iOS和Android兩者)。它現在仍然運行良好,並且遷移。在遷移時,我可以在更新的模式中添加表和其他列。順便說一句,我不知道我是否能夠提取以前的表數據並移動到新的模式表。請讓我知道這件事。域遷移時獲取過去的db數據

+0

Realm Java的遷移API在0.86.0中更改。 您正在使用哪個版本的Realm? – zaki50

回答

0

你可以做這樣的事情:

RealmSchema schema = realm.getSchema(); 

schema.get("OldTableName").renameField("OldFieldName", "NewFieldName"); 

schema.rename("OldTableName", "NewTableName"); 
1

只是爲了確認,你已經成功地設法與這兩個您的應用程序的iOS和Android版本的領域進行模式遷移,但你的問題是,是否您可以從舊模式版本的表中提取數據,並將其移至最新模式版本中的新表中。它是否正確?

如果這是正確的,那麼是的。在執行遷移時,您可以在MigrationBlock塊/ RealmMigration對象內運行循環,以手動將舊錶中的數據複製到新創建的表中。

這個邏輯的例子可以在Realm的GitHub賬戶的iOSJava倉庫的示例代碼中找到。

不幸的是,一旦在Realm文件上完成遷移並刪除了先前的表,那麼以後就不可能回溯並提取數據。