Knex 迁移不创建表

Knex migration does not create tables

我有一些 Knex 迁移脚本,如下所示:

'use strict';
exports.up = function (knex) {
    return knex.schema
        .hasTable('user')
        .then(function (exists) {
            if (!exists) {
                knex
                    .schema
                    .createTable('user', function (table) {
                        table.increments('id').primary();
                        table.string('firstName');
                        table.string('lastName');
                        table.string('email');
                        table.string('password');
                        table.string('username');
                    })
                    .then(console.log('created user table'));
            }
        });
};

我第一次 运行 这个脚本时,它创建了一个 table,这很棒,但后来我注意到 table 格式不正确(我传递了一个错误的参数.) 所以我从我的数据库中手动删除了创建的 table,以及 knex_migrations 和 knex_migrations_lock tables,并重新 运行 迁移命令.现在,它告诉我所有迁移都有 运行,但我仍然没有看到 table。是什么赋予了?是否有某个配置隐藏在我需要删除的地方?

添加"return".

'use strict';
exports.up = function (knex) {
    return knex.schema
        .hasTable('user')
        .then(function (exists) {
            if (!exists) {
              return knex // **** udpate
                    .schema
                    .createTable('user', function (table) {
                        table.increments('id').primary();
                        table.string('firstName');
                        table.string('lastName');
                        table.string('email');
                        table.string('password');
                        table.string('username');
                    })
                    .then(console.log('created user table'));
            }
        });
};