首页 > 解决方案 > Realm .net 实现是否支持本地导出

问题描述

我已经尽我所能查看了 API,但我想知道是否有办法使用导出或类似的东西在设备(Android、iOS 等)上备份 Realm .net 数据库。比云同步更需要该功能,我知道这是另一种备份方式。

Any.net 领域库设备端备份实施想法表示赞赏。

标签: c#.netrealmrealm-mobile-platform

解决方案


Realm 文件只是一个文件——如果它没有打开,你可以使用文件系统 API 来备份它。如果 Realm 实例已打开,则复制文件是不安全的,因为它不是原子操作,并且文件内容可能会在复制时更改。

如果您需要在 Realm 打开时执行备份,您可以使用Realm.WriteCopy来执行此操作。例如,像这样:

// This is the Realm you want to backup
var myRealm = Realm.GetInstance(...);

// Store the file in Backups/myRealm.backup
var myRealmPath = myRealm.Config.DatabasePath;
var folder = Path.GetDirectoryName(myRealmPath);
var backupPath = Path.Combine(folder, "Backups", "myRealm.backup");

var backupConfig = new RealmConfiguration(backupPath);

// You can also encrypt the backup
// backupConfig.EncryptionKey = new byte[] { 1, 2, 3, ..., 64 };

myRealm.WriteCopy(backupConfig);

推荐阅读