是否需要将 Promise 参数传递给 Knex 迁移?

Is the Promise argument passed into Knex migrations needed?

当运行命令knex migrate:make table-name 下面的代码出现在新创建的文件中。

exports.up = function (knex, Promise) {

  })
}

exports.down = function (knex, Promise) {
}

创建模式后,我注意到我从未使用默认提供的 Promise 参数(我的代码如下)。

exports.up = function (knex, Promise) {
  return knex.schema.createTable('Skills', (table) => {
    table.increments('id').primary()
    table.string('skill')
    table.string('description')
    table.integer('rating')
  })
}

exports.down = function (knex, Promise) {
  return knex.schema.dropTable('Skills')
}

我还查看了其他项目并意识到我从未对 Promise 参数做过任何事情。我错过了什么吗?或者它只是默认提供,并不总是需要?

不需要任何东西。

这是当时的历史论据,当时节点没有内置承诺(或者可能是 knex 允许 select 使用承诺实现时的提醒)。

它只是 bluebird 的一个实例(在 knex 0.15.2 中)。

它不是必需的,但有时可用。作为 Bluebird 的一个实例,您可以在那里使用一些 Bluebird 函数。例如,如果您喜欢插入(在数据库播种步骤),您可能有兴趣维护插入顺序。所以,Bluebird.mapSeries进来了。

Knex Promise Uses