Создать другой путь ключа для разных индексов в dexie.js?

Мой код indexeddb выглядит примерно так.

let request = indexedDB.open("myDB", "1.0");

request.onupgradeneeded = e => { 
    var mystore = db.createObjectStore('detailsTable', {
                keyPath: 'detail_id'
            });
            mystore.createIndex('status', 'survey_status', {
                unique: false
            });
            mystore.createIndex('uwid', 'user_wave_id', {
                unique: true
            });
            mystore.createIndex('dirty_bit', 'dirty_bit', {
                unique: false
            });
};

Так что мой status имеет путь к ключу как survey_status, uwid как user_wave_id то же самое касается dirty_bitтакже. Я просто пытаюсь создать это в Dexie.

const db = new Dexie("myDB");

db.version(1).stores({
  detailsTable:'&detail_id','status','uwid','dirty_bit'
});

Но я не знаю, как изменить ключевой путь этих индексов. Кто-нибудь, помогите мне, пожалуйста, с этим?

1 ответ

Декси заботится только о путях. Если вы создали свою БД вне Dexie и хотите перейти на использование Dexie, она адаптируется к использованию существующих индексов, которые вы создали, независимо от того, какие имена вы им дали. Просто укажите ключевые пути, и Декси найдет индексы.

В зависимости от того, как вы создали свою базу данных и индексы, соответствующий код dexie будет:

const db = new Dexie("myDB");

db.version(0.1).stores({
  detailsTable: "detail_id, survey_status, user_wave_id, dirty_bit"
});

Причина использования версии (0.1) вместо версии (1) описана здесь: https://dexie.org/docs/Tutorial/Migrating-existing-DB-to-Dexie

Другие вопросы по тегам