TypeError:无法读取未定义的属性'createTableIfNotExists'

我有一个knex的问题,并迁移我的表,所以我这样做

knex migrations:make users ,然后在我定义的迁移文件中:

  exports.up = function(knex, Promise) { return knex.shema.createTableIfNotExists('users', (table) => { table.increment(); table.string('username').unique().notNullable; table.string('password').notNullable(); table.boolean('admin').notNullable().defaultTo(false); table.timestamp('created_at').notNullable().defaultTo(knex.raw('now()')); }) }; exports.down = function(knex, Promise) { return knex.shema.dropTableIfExists('users'); }; 

然后,我运行knex migrate:latest --env development ,我有这个错误:

 Using environment: development Knex:warning - migrations failed with error: Cannot read property 'createTableIfNotExists' of undefined TypeError: Cannot read property 'createTableIfNotExists' of undefined at Object.exports.up (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/src/server/db/migrations/20170615170050_users.js:3:20) at Object.<anonymous> (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/knex/lib/migrate/index.js:489:48) at Object.tryCatcher (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/bluebird/js/release/promise.js:512:31) at Promise._settlePromise (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/bluebird/js/release/promise.js:569:18) at Promise._settlePromiseCtx (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/bluebird/js/release/promise.js:606:10) at Async._drainQueue (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/bluebird/js/release/async.js:138:12) at Async._drainQueues (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/bluebird/js/release/async.js:143:10) at Immediate.Async.drainQueues (/home/petar/Documents/Projects/Daniel/coin_app/display_coin_app/node_modules/bluebird/js/release/async.js:17:14) at runCallback (timers.js:672:20) at tryOnImmediate (timers.js:645:5) at processImmediate [as _immediateCallback] (timers.js:617:5) 

同样的错误显示,如果我运行knex migrate:lates ,我的db的select是postgres ,我知道他根本不创build用户,从我的psql\d显示这

 user_auth=# \d List of relations Schema | Name | Type | Owner --------+------------------------+----------+------- public | knex_migrations | table | petar public | knex_migrations_id_seq | sequence | petar public | knex_migrations_lock | table | petar (3 rows) 

那么有人可以帮我解释一下如何解决这个问题,谢谢