PWA创建IndexedDB数据库,但不创建任何对象存储库

问题描述 投票:0回答:1

我有一个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;
            }
        }
    });

我尝试了多种浏览器和隐身标签等,并且总是会发生相同的情况。数据库已创建,但未创建对象存储。我使用开发人员工具清除PWA中的所有数据并刷新,但发生了相同的事情。

如果增加版本号,我的数据库的版本将在浏览器中更新,但仍不添加对象存储。

upgrade()函数不会被调用。

我在开发的较早时候就发生了这种情况,我已解决了这个问题,但我不记得是怎么回事。我觉得这实际上可能不是编码问题...

progressive-web-apps indexeddb
1个回答
0
投票

好,我发现了问题。我在我的应用程序中添加了日志记录机制,在升级代码打开数据库创建日志条目之前,有一些代码正在运行。因此,它是在调用我的升级方法之前创建数据库(没有对象存储)。我更改了开放数据库代码,以始终包含解决问题的升级方法。

© www.soinside.com 2019 - 2024. All rights reserved.