gpt4 book ai didi

javascript - 如何将现有 Dexie 数据库迁移到新的 Dexie 数据库或如何重命名 Dexie 数据库?

转载 作者:行者123 更新时间:2023-12-03 02:14:25 62 4
gpt4 key购买 nike

我有一个使用 Dexie 包装器作为 indexedDB 的 Web 应用程序,由于某种原因,我需要无故障地重命名现有数据库,我在 Dexie 文档上找不到重命名。

最佳答案

无论是 Dexie 还是 native indexedDB,都不支持重命名数据库。但是您可以使用以下代码克隆数据库(未经测试):

function cloneDatabase (sourceName, destinationName) {
//
// Open source database
//
const origDb = new Dexie(sourceName);
return origDb.open().then(()=> {
// Create the destination database
const destDb = new Dexie(destinationName);

//
// Clone Schema
//
const schema = origDb.tables.reduce((result,table)=>{
result[table.name] = [table.schema.primKey]
.concat(table.schema.indexes)
.map(indexSpec => indexSpec.src);
return result;
}, {});
destDb.version(origDb.verno).stores(schema);

//
// Clone Data
//
return origDb.tables.reduce(

(prev, table) => prev
.then(() => table.toArray())
.then(rows => destDb.table(table.name).bulkAdd(rows)),

Promise.resolve()

).then(()=>{
//
// Finally close the databases
//
origDb.close();
destDb.close();
});
});
}

关于javascript - 如何将现有 Dexie 数据库迁移到新的 Dexie 数据库或如何重命名 Dexie 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49423263/

62 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com