【问题标题】:Use pre-populated databases with Realm使用 Realm 预填充的数据库
【发布时间】:2014-12-02 03:11:06
【问题描述】:

我们如何将 SQLite 数据库转换为 Realm 数据库?

有没有办法在 Android 上使用带有 Realm 的预填充数据库?

【问题讨论】:

    标签: java android realm


    【解决方案1】:

    这是对问题第二部分的回答。

    在您的应用程序的资产文件夹中提供预填充数据库时,类似于官方的 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();
    

    【讨论】:

    • 您愿意详细说明如何在实践中使用它吗?我是 Realm 的新手,在查看了链接的文档后,我不清楚我将如何设置它。我从一个全新的应用程序开始。具体来说,我不确定如何构建您描述为MyInitialDataRealmTransaction 的事务。提前感谢您的宝贵时间。
    【解决方案2】:

    目前没有办法自动将 SQLite 数据库转换为 Realm 数据库,您必须手动从 SQLite 数据库中读取所有数据并将它们插入到 Realm 中。

    Realm 浏览器可以使这更容易,但它目前仅适用于 MacOS X。你可以在这里阅读更多:https://github.com/realm/realm-java/issues/435

    对于第二部分:由于 Realm 数据库只是一个文件,因此您可以轻松地将预填充的 Realm 数据库添加到您的应用程序并使用 Realm.getInstance() 引用它。

    【讨论】:

    • 您好,您能否提供有关预填充数据库的更多详细信息?
    • 您可以看到从 sqlite here 创建预填充数据库的示例。 Realm 的文档描述了嵌入预填充数据库here 的过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多