Docs 菜单

Docs 主页开发应用程序Atlas Device SDKs

删除 Realm - Kotlin SDK

在此页面上

  • 概述
  • 删除 Realm 文件以避免迁移

在某些情况下,例如客户端重置场景,您可能需要删除 Realm 文件及其辅助文件。这在开发过程中通常有助于快速重置环境。但是,在运行应用且 Realm 实例仍处于打开状态时执行此操作可能会导致数据损坏或扰乱Atlas Device Sync。

为避免丢失数据和中断 Device Sync,您可以在关闭 Realm 的所有实例时删除这些文件。 在删除 Realm 文件之前,请确保备份所有重要对象,因为您将丢失 Realm 中的所有未同步数据

要在应用程序运行时安全地删除 Realm 文件,您可以使用Realm.deleteRealm()方法。以下代码演示了这一点:

// You must close a realm before deleting it
realm.close()
// Delete the realm
Realm.deleteRealm(config)

如果您在开发应用程序时快速迭代,则在进行模式更改时,您可能需要删除而不是迁移 Realm 文件。 Realm 配置提供了deleteRealmIfMigrationNeeded参数来帮助处理这种情况。

当您使用 deleteRealmIfMigrationNeeded时,如果需要迁移,Realm 会删除 Realm 文件。 然后,您可以创建与新模式匹配的对象,而不是为开发或测试数据编写迁移区块。

val config = RealmConfiguration.Builder(
schema = setOf(Frog::class)
)
.deleteRealmIfMigrationNeeded()
.build()
val realm = Realm.open(config)
Log.v("Successfully opened realm: ${realm.configuration.name}")

重要

请勿在生产环境中使用 deleteRealmIfMigrationNeeded

切勿将此标记设为 true 的应用发布到生产环境。

← 减小 Realm 文件大小 - Kotlin SDK