我使用sqlite作为我的数据库,用于离线应用程序,它是用电子制作的。 为了创建数据库,我使用了knex迁移。 问题是,它将在开发中运行良好,我将迁移数据库并启动电子过程。
但是在为生产构建打包应用程序时,我需要在第一次启动时在客户端计算机上运行迁移。这样就可以创建数据库,并且当有应用程序更新时,新的迁移将使数据库保持更新。
适当的方法是什么?如何在应用启动时运行迁移,或者如何在捆绑中保留迁移。 不知道所有代码都保存在app.asar中?迁移代码是否会从那里运行?
此外,应在客户端计算机中创建数据库的位置?
答案 0 :(得分:0)
如果您正在使用电子生成器,则可以将其添加到电子生成器.json
"extraFiles": "migrations/*",
,其中 migrations 是保存迁移的文件夹。
在运行时自动迁移
您可以添加以下代码
const client = knex(config[env]);
client.migrate.latest(config);