knex 如何检查当前迁移是否是最新的

leo*_*APA 5 postgresql knex.js

我正在使用 knex 进行 postgres 迁移版本控制。基本思想是:每次节点启动时,都会检查当前数据库迁移是否是最新的。如果没有,则通过 申请最新的knex.migrate.latest().then(....)。

例如,我有一个init.js迁移文件,它是我当前的数据库版本。然后我提交一份新的newMigration.js并重新启动服务器。我希望节点找到新的迁移并应用它。

我知道有一个.currentVersion函数可以获取当前的db迁移版本,但是node如何知道新添加的迁移(版本)?

请指教!谢谢!

Som*_*iks 2

它记录在这里。

\n\n

我的一个项目中有这样的东西:

\n\n
// iniciando o servidor, mas antes verificando qual \xc3\xa9 a do banco\nconsole.log("(1/3) running [knex.migrate.latest()]");\nknex.migrate.latest().then(function () {\n  console.log("(2/3) running [knex.seed.run()]");\n  return knex.seed.run(); // XXX converter os seeds em migrations\n}).then(function () {\n  var s = "(3/3) app ready. Listening port: ";\n  console.log(s + port + ", addr: " + (addr ? addr : "0.0.0.0"));\n  http.listen(port, addr);\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

这样,每次节点重新启动时,它都会检查是否有较新的迁移并运行它们。

\n\n

只有当这个过程结束时我才开始监听http请求

\n