在 MongoDB Realm 中终止并重新启用同步后,我必须在客户端删除哪个文件?
Which file do I have to delete on the client side after terminating and re-enabling sync in MongoDB Realm?
我对 MongoDB 领域中的一个模式做了一些更改,然后终止并重新建立了同步。现在我收到这条消息:
Error:
client file not found. The server has forgotten about the client-side
file presented by the client. This is likely due to using a
synchronized realm after terminating and re-enabling sync. Please wipe
the file on the client to resume synchronization. { sessionIdent: 1,
clientFileIdent: 35 } (ProtocolErrorCode=208)
我必须删除哪个文件?我会丢失所有数据吗?
对于 macOS,当使用仅限本地的领域时,领域文件称为 default.realm。 'default' 部分可以根据您的应用程序的要求进行调用,并且可以存储在您设备中的任何位置 - 同样是根据应用程序的要求。默认情况下,它存储在 Application Support 文件夹中(见下文)。
当使用 MongoDB 领域(同步)时,它是一个不同的结构,因为每个 'partition' 都存储为一个单独的文件,并且文件根据它们的分区名称命名
它们将位于您的 users/your_name/Library/Application Support/com.your_developer_name.app 名称中,对于 Task Tracker 应用程序来说看起来像这样
文件如下所示:
在这种情况下,我的应用有两个分区:Task Tracker 和 Users,因此有两个文件。
struct Constants {
static let REALM_APP_ID = "tasktracker-aaaaa"
static let REALM_PARTITION_VALUE = "Task Tracker"
static let USERS_PARTITION_VALUE = "Users"
}
如果你想完全重置,你可以把整个文件夹tasktracker-xxxxx扔掉。不过请记住,Realm 会进行一些缓存,如果您的应用程序已连接到 realm,并且是 运行,文件将重新生成。因此,请确保在关闭应用程序时删除这些文件,或者如果您在应用程序内执行此操作,则在它连接到领域之前的任何时候。或者在所有对象都被释放之后(这很棘手 - 使用自动释放池)。
Link 到 Legacy Docs 删除 non-sync'd 文件以供参考 Delete Files
如果找不到文件,请将“print(Realm.Configuration.defaultConfiguration.fileURL!)”添加到您的应用程序以获取目录,然后在查找器中将目录粘贴到文件夹中。在那里你会找到 default.realm 文件和带有过时文件的 mongodb-realm 目录。删除了它们,一切都很好!!
我对 MongoDB 领域中的一个模式做了一些更改,然后终止并重新建立了同步。现在我收到这条消息:
Error:
client file not found. The server has forgotten about the client-side file presented by the client. This is likely due to using a synchronized realm after terminating and re-enabling sync. Please wipe the file on the client to resume synchronization. { sessionIdent: 1, clientFileIdent: 35 } (ProtocolErrorCode=208)
我必须删除哪个文件?我会丢失所有数据吗?
对于 macOS,当使用仅限本地的领域时,领域文件称为 default.realm。 'default' 部分可以根据您的应用程序的要求进行调用,并且可以存储在您设备中的任何位置 - 同样是根据应用程序的要求。默认情况下,它存储在 Application Support 文件夹中(见下文)。
当使用 MongoDB 领域(同步)时,它是一个不同的结构,因为每个 'partition' 都存储为一个单独的文件,并且文件根据它们的分区名称命名
它们将位于您的 users/your_name/Library/Application Support/com.your_developer_name.app 名称中,对于 Task Tracker 应用程序来说看起来像这样
文件如下所示:
在这种情况下,我的应用有两个分区:Task Tracker 和 Users,因此有两个文件。
struct Constants {
static let REALM_APP_ID = "tasktracker-aaaaa"
static let REALM_PARTITION_VALUE = "Task Tracker"
static let USERS_PARTITION_VALUE = "Users"
}
如果你想完全重置,你可以把整个文件夹tasktracker-xxxxx扔掉。不过请记住,Realm 会进行一些缓存,如果您的应用程序已连接到 realm,并且是 运行,文件将重新生成。因此,请确保在关闭应用程序时删除这些文件,或者如果您在应用程序内执行此操作,则在它连接到领域之前的任何时候。或者在所有对象都被释放之后(这很棘手 - 使用自动释放池)。
Link 到 Legacy Docs 删除 non-sync'd 文件以供参考 Delete Files
如果找不到文件,请将“print(Realm.Configuration.defaultConfiguration.fileURL!)”添加到您的应用程序以获取目录,然后在查找器中将目录粘贴到文件夹中。在那里你会找到 default.realm 文件和带有过时文件的 mongodb-realm 目录。删除了它们,一切都很好!!