PWA создает базу данных IndexedDB, но не создает никаких хранилищ объектов - PullRequest
0 голосов
/ 27 марта 2020

У меня есть Vue PWA, и он прекратил создавать хранилища объектов IndexDB при первой загрузке или обновлении. Вот мой код, я использую последнюю версию IDB (https://github.com/jakearchibald/idb):

await openDB('dbname', 1, {
        upgrade(db, oldVersion, newVersion, transaction) {
            switch (newVersion) {
                case 0:
                // a placeholder case so that the switch block will
                // execute when the database is first created
                // (oldVersion is 0)
                // falls through
                case 1:
                    db.createObjectStore('change_log', {keyPath: 'id'});
                    db.createObjectStore('person', {keyPath: 'id'})
                        .createIndex('username', 'username');
                    break;
            }
        }
    });

Я перепробовал несколько браузеров и вкладок инкогнито, et c. и всегда происходит одно и то же. База данных создана, но хранилища объектов не созданы. Я использую инструменты разработчика, чтобы очистить все данные в PWA и обновить sh, но происходит то же самое.

Если я увеличиваю номер версии, версия моей базы данных обновляется в браузере, но объект магазины по-прежнему не добавляются.

Функция upgrade () не вызывается.

У меня такое случалось со мной ранее в моей разработке, и я исправил это, но не могу помни как. Я чувствую, что на самом деле это не проблема кодирования ...

1 Ответ

0 голосов
/ 27 марта 2020

ОК, я нашел проблему. Я добавил механизм регистрации в свое приложение, и там был код, выполняемый ДО того, как мой код обновления открывал базу данных для создания записи в журнале. Поэтому он создавал базу данных (без хранилищ объектов) до того, как был вызван мой метод обновления. Я изменил код своей открытой базы данных, чтобы всегда включать метод обновления для решения моих проблем.

...