Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ / /

删除 Realm - Kotlin SDK

在此页面上

  • Overview
  • 删除 Realm 文件以避免迁移

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

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

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

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

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

当您使用 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 文件大小