Как сделать миграцию в базе данных realm в React naitve? - PullRequest
0 голосов
/ 25 мая 2020

Я использую базу данных области для своего приложения. Я хочу добавить в схему 2 поля: адрес электронной почты и пароль. это дало ошибку, ошибка: Миграция требуется из-за следующих ошибок: Свойство Note.email было добавлено Свойство Note.password было добавлено

Я знаю общий формат функции миграции Я не знаю знаю, как мне написать код миграции для добавления поля Я читал документацию на веб-сайте области и аналогичные вопросы и коды, но ни одна тема мне не помогла.

Старая схема:

export const NoteSchema = {
    name: 'Note',
    primaryKey:'id',
    properties: {
        id: 'int',    // primary key
        time_date:'string',
        note_title:{ type: 'string', indexed: true },
        note_body: { type: 'string', optional: true },
    }
};

новая схема:

export const NoteSchema = {
    name: 'Note',
    primaryKey:'id',
    properties: {
        id: 'int',    // primary key
        time_date:'string',
        note_title:{ type: 'string', indexed: true },
        note_body: { type: 'string', optional: true },
        email:{ type: 'string', optional: false },
        password:{ type: 'string', optional: false }
    }
};

Старая база данных Опции

 const databaseOptions = {
     path: 'noteListApp.realm',
     schema:[NoteSchema],
     schemVersion:0,
 }


export const inserNewNote = newNote => new Promise((resolve,reject)=> {
    Realm.open(databaseOptions).then(realm=>{
            realm.write(()=>{
                realm.create(NOTE_SCHEMA,newNote,true);
                resolve(newNote)
            })
    }).catch((error)=>reject (error))
})

Новая база данных Опции

const databaseOptions = {
    schema:[NoteSchema],
    schemVersion:1,
    migration: (oldRealm, newRealm) => {
            if (oldRealm.schemaVersion < 1) {
              const oldObjects = oldRealm.objects('Note');
              const newObjects = newRealm.objects('Note');

              // loop through all objects and set the name property in the new schema
              for (let i = 0; i < oldObjects.length; i++) {
                    ??????????
              }
            }
          }
}
...