【问题标题】:Change PouchDB directory in Electron在 Electron 中更改 PouchDB 目录
【发布时间】:2022-03-21 13:34:07
【问题描述】:

我想在我的 Electron 应用程序中更改 PouchDB 目录。当我更新我的APP(重新安装)时,我的所有数据都被破坏了。

所以,我想更改我的 PouchDB 目录,以便在重新安装我的应用程序时不删除我的数据。

我的代码:

import PouchDB from 'pouchdb';
const Presentation = new PouchDB('~/test/db');

这会返回一个错误:

err {类型:“OpenError”,名称:“OpenError”,原因:错误:IO 错误: ~/test/db/LOCK: Aucun fichier ou dossier de ce type, message: "IO 错误:~/test/db/LOCK: Aucun fichier ou dossier de ce type",堆栈: “OpenError: IO 错误: ~/test/db/LOCK: Aucun fichier…es/abstract-leveldown/abstract-leveldown.js:39:16"}

有谁知道当我重新安装 Electron 应用程序时如何更改我的目录或不删除我的数据?

感谢社区!

【问题讨论】:

    标签: node.js electron pouchdb


    【解决方案1】:

    ~ 是一个称为“波浪号扩展”的 Bash 功能。这是壳的功能,电子无法处理它。请改用 new PouchDB('./test/db') 记录。

    您可以使用pouchdb-dump-cli 包导出数据库转储,然后使用pouchdb-load 包导入。

    【讨论】:

    • 谢谢奥列格。对于 dump-cli,我可以从 Electron App 中的 javascrilt 文件执行命令?
    • pouchdb-replication-stream 更适合在应用程序源代码中使用。 dump-cli 用作终端命令
    【解决方案2】:

    发生 IO 错误是因为 pouch db 无法在指定位置创建文件夹。 Electron 应用程序通常需要在 appData + appName 位置存储配置、本地 db 文件。此位置对应用程序具有完全访问权限。

    const appName='<Electron App Name>'
    const db = new PouchDB(
        path.join(app.getPath('appData'), appName, "db")
      );
    

    参考:

    【讨论】:

      猜你喜欢
      • 2013-12-04
      • 2018-09-27
      • 2016-10-14
      • 2018-08-10
      • 2018-05-30
      • 2014-08-09
      • 2016-03-30
      • 2013-06-07
      • 1970-01-01
      相关资源
      最近更新 更多