Метод realm.exists () stati c работает правильно? - PullRequest
0 голосов
/ 05 февраля 2020

Я не уверен, что это можно считать ошибкой, однако, как описано в документации 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 в новые схемы областей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...