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

时间:2016-06-17 15:35:08

标签: postgresql knex.js

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

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

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

请指教!谢谢!

1 个答案:

答案 0 :(得分:1)

记录了shebang

我的一个项目中有类似的东西:

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

每次节点重启时都会检查更新的迁移并运行它们。

只有在此过程结束时我才开始收听http请求