Я не уверен, что это можно считать ошибкой, однако, как описано в документации API метода stati c существует () , этот метод требует config и должен указать, существует ли царство, и я заметил странное поведение. Я использую пользовательскую область с именем UsersDatabase.realm , и эта область уже существует (обеспечивается проверкой файловой системы).
При запуске приложения я проверяю, существует ли область уже или нет.
Вот как я создал царство:
let realm = new Realm({
path: 'UserDatabase.realm',
schema: [
{
name: 'user_details',
properties: {
user_id: {type: 'int', default: 0},
user_name: 'string',
user_contact: 'string',
user_address: 'string',
},
},
],
});
После перезагрузки приложения я запустите эту функцию:
console.log(
'realm exists? ' +
Realm.exists({
path: 'UserDatabase.realm',
schema: [
{
name: 'user_details',
properties: {
user_id: {type: 'int', default: 0},
user_name: 'string',
user_contact: 'string',
user_address: 'string',
},
},
],
}),
);
и на консоли прочитал:
царство существует? true
untile здесь все окей, работает как положено. Но если я запускаю ту же функцию, меняя имя свойства, например, с user_contact
на usercontact
:
console.log(
'realm exists? ' +
Realm.exists({
path: 'UserDatabase.realm',
schema: [
{
name: 'user_details',
properties: {
user_id: {type: 'int', default: 0},
user_name: 'string',
usercontact: 'string',
user_address: 'string',
},
},
],
}),
);
на консоли, я все равно получаю:
царство существует? true
Так что я предполагаю, что Realm.exists(...)
проверяет только, существует ли область по заданному пути и не проверяет эквивалентность схемы между той, которая задана в качестве аргумента, и той, которая найдена в файловой системе , Это верно?
Если да, то почему метод требует config , а не только path ?
Примечание: для нас это очень важно чтобы проверить разумность между схемами, потому что мы приближаемся к обновлению приложения до новой версии, а в старой мы использовали другую схему. Мы сохраним данные областей предыдущих версий, сделав некоторые логики миграции c в новые схемы областей.