createTable()生成drop table

时间:2015-04-19 01:04:54

标签: knex.js

knex v0.7.6,pg v4.3.0

任何人都可以解释为什么一个knex dropTable()后跟一个createTable()导致生成两个丢弃表?第二个sql“drop table”是在调用createTable()

时生成的

代码

  return schema.dropTable('users')
    .then(function(){
      return schema.createTable('users',function(t){
        t.string('login').primary();
        t.json('data',true);});
    })

Knex调试输出

    Table
{ __cid: '__cid1', sql: 'drop table "mytable"', bindings: [] }
{ __cid: '__cid2', sql: 'drop table "mytable"', bindings: [] }

1 个答案:

答案 0 :(得分:0)

我不得不在网上阅读,但试试这个:

return knex.schema.dropTable(TableName).then(function(exists) {
  if (!exists) {
    return knex.schema.createTable(TableName, function(t) {
        t.string('login').primary().unique();
        t.json('data',true);});
    });
  }
});

我不确定model.table是什么。但如果您愿意,请尝试将TableName替换为model.table