const dbName = 'hist-data-1d';
const dbVersion = 2;
const storeName = 'test';
const request = indexedDB.open(dbName, dbVersion);
request.onerror = function(event) {
console.log('IndexedDB 数据库打开失败');
};
request.onsuccess = function(event) {
const db = event.target.result;
console.log('IndexedDB 数据库打开成功');
// 执行数据操作...
};
request.onupgradeneeded = function(event) {
const db = event.target.result;
console.log('IndexedDB 数据库版本升级成功');
// 在新版本的数据库中创建新的对象仓库
const store = db.createObjectStore(storeName);
};
增加新表只能改版本号?
是的,增加新表需要在 onupgradeneeded 事件中创建新的对象仓库。
而这个事件只有在数据库版本号发生变化时才会触发。
因此,如果需要增加新表,你需要先将数据库版本号加1,
然后在 onupgradeneeded 中创建新的对象仓库。
如果你需要同时修改数据库的现有表结构,也可以在 onupgradeneeded 中执行数据迁移操作。
例如,你可以将现有表中的数据备份到一个新表中,然后在现有表中添加新字段,
最后将备份的数据恢复到新表中。