2015-04-19 3 views
0

knex v0.7.6, стр 4.3.0CreateTable() генерирует таблицу падения

Может кто-нибудь объяснить, почему knex dropTable(), а затем CreateTable() в результате к образованию двух таблиц падения? Второй SQL "капля стол" генерируется по вызову 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: [] } 

ответ

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.

+0

Не знаете, как это работает для вас. В моем тестировании это просто позволяет сделать вызов createTable(), поскольку dropTable() всегда выполняется успешно, а параметр _then_ содержит объект результатов. –

 Смежные вопросы

  • Нет связанных вопросов^_^