使用 Electron 和 sqlite 进行 Knex 迁移?

Pra*_*tha 5 sqlite offline reactjs knex.js electron

我正在使用 sqlite 作为我的数据库,用于使用电子制作的离线应用程序。为了创建数据库,我使用了 knex 迁移。问题是,它会在开发中运行良好,我会迁移数据库并启动电子进程。

但是在为生产构建打包应用程序时,我需要在第一次启动时在客户端计算机上运行迁移。这样就可以创建数据库,并且当有应用程序更新时,新的迁移将保持数据库更新。

什么是合适的方法。我如何在应用程序启动时运行迁移,或者如何将迁移保留在包中。不是所有的代码都保存在app.asar中吗?迁移代码会从那里运行吗?

此外,应该在客户端计算机中的何处创建数据库?

小智 5

如果您使用的是 electro builder,那么您可以将其添加到 electronics-builder.json "extraFiles": "migrations/*", ,其中migrations是保存迁移的文件夹。

要在运行时自动迁移它,您可以添加以下代码 const client = knex(config[env]); client.migrate.latest(config);

  • 应该详细说明这一点,以便更有帮助。就像代码从哪里运行一样。 (3认同)