【发布时间】:2014-12-02 03:11:06
【问题描述】:
我们如何将 SQLite 数据库转换为 Realm 数据库?
有没有办法在 Android 上使用带有 Realm 的预填充数据库?
【问题讨论】:
我们如何将 SQLite 数据库转换为 Realm 数据库?
有没有办法在 Android 上使用带有 Realm 的预填充数据库?
【问题讨论】:
这是对问题第二部分的回答。
在您的应用程序的资产文件夹中提供预填充数据库时,类似于官方的 Objective-C 到 bundle of Realm with your app,如果您有大量数据,可能仍然是获取预填充 Realm 的最快方法。但从 Realm Java 0.89 开始,现在有一种官方方法可以在 Android 上预填充 Realm 数据库。
现在有一种方法允许在第一次创建 Realm 数据库时指定要运行的事务。您应该调用这个方法,initialData(Realm.Transaction transaction),作为设置 RealmConfiguration Builder 的一部分。
例如
RealmConfiguration config = new RealmConfiguration.Builder(context)
.name("myrealm.realm")
.initialData(new MyInitialDataRealmTransaction()),
.build();
【讨论】:
MyInitialDataRealmTransaction 的事务。提前感谢您的宝贵时间。
目前没有办法自动将 SQLite 数据库转换为 Realm 数据库,您必须手动从 SQLite 数据库中读取所有数据并将它们插入到 Realm 中。
Realm 浏览器可以使这更容易,但它目前仅适用于 MacOS X。你可以在这里阅读更多:https://github.com/realm/realm-java/issues/435
对于第二部分:由于 Realm 数据库只是一个文件,因此您可以轻松地将预填充的 Realm 数据库添加到您的应用程序并使用 Realm.getInstance() 引用它。