knex如何检查当前迁移是否是最新的
knex how to check if current migration is the latest or not
我正在使用 knex 进行 postgres 迁移版本控制。基本思想是:
每次节点启动时,它都会检查当前数据库迁移是否是最新的。如果没有,则应用 knex.migrate.latest().then(....)
的最新版本。
例如,我有一个 init.js
迁移文件,它是我当前的数据库版本。然后我提交一个新的 newMigration.js
并重新启动服务器。我想让节点找到新的迁移并应用它。
我知道有一个.currentVersion
函数可以获取当前的db迁移版本,但是node怎么知道新增的迁移(版本)呢?
请指教!谢谢!
已记录 here。
我的一个项目中有这样的东西:
// 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 请求
我正在使用 knex 进行 postgres 迁移版本控制。基本思想是:
每次节点启动时,它都会检查当前数据库迁移是否是最新的。如果没有,则应用 knex.migrate.latest().then(....)
的最新版本。
例如,我有一个 init.js
迁移文件,它是我当前的数据库版本。然后我提交一个新的 newMigration.js
并重新启动服务器。我想让节点找到新的迁移并应用它。
我知道有一个.currentVersion
函数可以获取当前的db迁移版本,但是node怎么知道新增的迁移(版本)呢?
请指教!谢谢!
已记录 here。
我的一个项目中有这样的东西:
// 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 请求