【发布时间】:2020-12-03 21:39:33
【问题描述】:
我已尽我所能查看 API,但我想知道是否有一种方法可以使用导出或类似方法在设备(Android、iOS 等)上备份 Realm .net 数据库。需要该功能而不是云同步,我知道这是另一种备份方式。
感谢任何.net 领域库设备端备份实施想法。
【问题讨论】:
标签: c# .net realm realm-mobile-platform
我已尽我所能查看 API,但我想知道是否有一种方法可以使用导出或类似方法在设备(Android、iOS 等)上备份 Realm .net 数据库。需要该功能而不是云同步,我知道这是另一种备份方式。
感谢任何.net 领域库设备端备份实施想法。
【问题讨论】:
标签: c# .net realm realm-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);
【讨论】: