2017-09-04 74 views
2

一直試圖找出這一點,但迄今沒有運氣。Sequelize無法讀取未定義的屬性'toString'

當試圖運行我的遷移時,出現以下錯誤;

== 20170904085107-kognitio-queue: migrating ======= 
TypeError: Cannot read property 'toString' of undefined 
    at Object.attributeToSQL (/home/vagrant/insights-api/node_modules/sequelize/lib/dialects/mysql/query-generator.js:240:34) 
    at Object.attributesToSQL (/home/vagrant/insights-api/node_modules/sequelize/lib/dialects/mysql/query-generator.js:306:45) 
    at QueryInterface.createTable (/home/vagrant/insights-api/node_modules/sequelize/lib/query-interface.js:171:38) 
    at Object.up (/home/vagrant/insights-api/lib/migrations/20170904085107-kognitio-queue.js:4:31) 
    at constructor._exec (/home/vagrant/insights-api/node_modules/umzug/lib/migration.js:104:23) 
    at constructor.up (/home/vagrant/insights-api/node_modules/umzug/lib/migration.js:69:17) 
    at constructor.<anonymous> (/home/vagrant/insights-api/node_modules/umzug/index.js:124:28) 
    at PassThroughHandlerContext.finallyHandler (/home/vagrant/insights-api/node_modules/bluebird/js/release/finally.js:57:23) 
    at PassThroughHandlerContext.tryCatcher (/home/vagrant/insights-api/node_modules/bluebird/js/release/util.js:16:23) 
    at Promise._settlePromiseFromHandler (/home/vagrant/insights-api/node_modules/bluebird/js/release/promise.js:512:31) 
    at Promise._settlePromise (/home/vagrant/insights-api/node_modules/bluebird/js/release/promise.js:569:18) 
    at Promise._settlePromise0 (/home/vagrant/insights-api/node_modules/bluebird/js/release/promise.js:614:10) 
    at Promise._settlePromises (/home/vagrant/insights-api/node_modules/bluebird/js/release/promise.js:693:18) 
    at Promise._fulfill (/home/vagrant/insights-api/node_modules/bluebird/js/release/promise.js:638:18) 
    at Promise._resolveCallback (/home/vagrant/insights-api/node_modules/bluebird/js/release/promise.js:432:57) 
    at Promise._settlePromiseFromHandler (/home/vagrant/insights-api/node_modules/bluebird/js/release/promise.js:524:17) 

遷移文件如下;

'use strict'; 
module.exports = { 
    up: function(queryInterface, Sequelize) { 
     return queryInterface.createTable('Kognitio_Queue', { 
      queue_id: { 
       allowNull: false, 
       primaryKey: true, 
       type: Sequelize.INTEGER 
      }, 
      queue_user: { 
       allowNull: false, 
       type: Sequelize.STRING(20) 
      }, 
      queue_query: { 
       allowNull: false, 
       type: Sequelize.LONG 
      }, 
      queue_added: { 
       allowNull: false, 
       type: Sequelize.DATETIME, 
       defaultValue: Sequelize.NOW 
      }, 
      queue_executed: { 
       allowNull: true, 
       type: Sequelize.DATETIME 
      }, 
      queue_save_results: { 
       allowNull: false, 
       type: Sequelize.BOOLEAN 
      }, 
      queue_results_path: { 
       allowNull: true, 
       type: Sequelize.TEXT 
      } 
     }); 
    }, 
    down: function(queryInterface, Sequelize) { 
     return queryInterface.dropTable('Kognitio_Queue'); 
    } 
}; 

而我的模型文件是這樣的;

module.exports = (sequelize, DataTypes) => { 
    const Kognitio_Queue = sequelize.define('Kognitio_Queue', { 
     queue_id: { 
      type: DataTypes.INTEGER, 
      allowNull: false, 
      primaryKey: true, 
     }, 
     queue_user: { 
      type: DataTypes.STRING(20), 
      allowNull: false 
     }, 
     queue_query: { 
      allowNull: false, 
      type: DataTypes.LONG 
     }, 
     queue_added: { 
      allowNull: false, 
      type: DataTypes.DATETIME 
     }, 
     queue_executed: { 
      allowNull: true, 
      type: DataTypes.DATETIME 
     }, 
     queue_save_results: { 
      allowNull: false, 
      type: DataTypes.BOOLEAN 
     }, 
     queue_results_path: { 
      allowNull: true, 
      type: DataTypes.TEXT 
     } 
    }, { 
     underscored: true, 
     freezeTableName: true 
    }); 
    return Kognitio_Queue; 
}; 

我很茫然,什麼可能會造成因爲我已經檢查了這些文件,針對成功運行,可以看到它們之間沒有區別其他遷移發生此錯誤。我已經儘可能地清理整個數據庫並重新遷移,但是這是唯一一個失敗的。

在此先感謝

回答

4

找出它是無法識別的數據類型。

+1

uffff,錯誤捕獲在sequelize吸soooooo多 – everm1nd

相關問題