2014-10-07 38 views

回答

9

當前沒有辦法自動將SQLite數據庫轉換爲Realm數據庫,您必須手動讀取SQLite數據庫中的所有數據並將它們插入到Realm中。

另一種方法可能是Realm瀏覽器,它可能會使這更容易,但它目前僅適用於MacOS X.您可以在這裏閱讀更多:https://github.com/realm/realm-java/issues/435

對於第二部分:由於Realm數據庫只是一個文件,所以您可以輕鬆地將預填充的領域數據庫添加到您的應用程序中並使用Realm.getInstance()引用它。

+2

嗨,你能請提供預填充數據庫的更多細節? – 2015-12-22 10:25:17

+2

你可以看到一個從sqlite [here](https://github.com/kee23/SQLiteToRealm)創建預填充數據庫的例子。 Realm的文檔描述了嵌入預填充數據庫的過程[這裏](https://realm.io/docs/objc/latest/#bundling-a-realm-with-an-app)。 – kee23 2016-01-04 07:17:18

4

這是對問題第二部分的回答。

在您的應用的資產文件夾中發佈預填充數據庫時,類似於官方Objective-C到bundle of Realm with your app,如果您有大量數據,仍然可能是獲得預填充的Realm的最快方式。但是從Realm Java 0.89開始,現在有一種官方方式來預先填充Android上的Realm數據庫。

現在有一種方法允許指定首次創建Realm數據庫時要運行的事務。作爲設置RealmConfiguration Builder的一部分,您應該調用此方法initialData(Realm.Transaction transaction)

例如

RealmConfiguration config = new RealmConfiguration.Builder(context) 
    .name("myrealm.realm") 
    .initialData(new MyInitialDataRealmTransaction()), 
    .build(); 
+1

您是否願意詳細闡述如何在實踐中使用它?我是Realm的全新人物,在查看鏈接文檔後,我不清楚該如何設置它。我從一個全新的應用程序開始。具體而言,我不確定如何構建您描述爲「MyInitialDataRealmTransaction」的事務。在此先感謝您的時間。 – justinraczak 2016-09-28 01:56:06