我有一個使用Sequelize的node.js應用程序。我目前正在將SQLite作爲輕鬆開發設置和測試的目標,但將轉向MySQL進行生產。我使用sequelize-cli來創建模型和遷移,所有工作都沒有任何問題,我已經確認這些表是使用SQLite瀏覽器工具創建的。我現在遇到的問題是運行我下面的種子文件時(數據庫當前爲空),我收到以下錯誤。種子期間的SequelizeUniqueConstraintError
錯誤:
Unhandled rejection SequelizeUniqueConstraintError: Validation error
at Query.formatError (/Users/abc/repos/myProject/node_modules/sequelize/lib/dialects/sqlite/query.js:231:14)
at Statement.<anonymous> (/Users/abc/repos/myProject/node_modules/sequelize/lib/dialects/sqlite/query.js:47:29)
at Statement.replacement (/Users/abc/repos/myProject/node_modules/sqlite3/lib/trace.js:20:31)
遷移:
模型:
'use strict';
module.exports = function(sequelize, DataTypes) {
var Question = sequelize.define('Question', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
type: {
allowNull: false,
type: DataTypes.INTEGER
},
text: {
allowNull: false,
type: DataTypes.STRING
},
nextQuestionId: {
type: DataTypes.INTEGER
}
}, {
classMethods: {
associate: function(models) {
Question.belongsTo(Question, {as: 'nextQuestion', foreignKey: 'nextQuestionId'});
Question.hasMany(models.Answer);
Question.hasMany(models.questionoption, {as: 'options'});
}
}
});
return Question;
};
種子:
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
return queryInterface.bulkInsert('Questions', [
{type: 0, text: 'Question A'},
{type: 5, text: 'Question B', nextQuestionId: 4},
{type: 5, text: 'Question C', nextQuestionId: 4},
{type: 0, text: 'Question D'},
{type: 0, text: 'Question E'},
{type: 0, text: 'Question F'},
{type: 0, text: 'Question G'},
{type: 0, text: 'Question H'},
{type: 0, text: 'Question I'}
], {});
} ...
我已經試過尋找文檔和谷歌搜索答案,似乎沒有任何暗示這是一個共同的問題。我沒有定義任何獨特的列(當然除了主鍵,但它是一個autoIncrement)如果我有更多的信息或線索,哪些列導致cli問題,那麼我至少可以嘗試一些不同的事情,但沒有幫助。我試過在SQL中手動運行等效插入,並且它們工作,所以我不認爲這是DB拒絕插入,它似乎是Sequelize內部的東西。
任何幫助將不勝感激,因爲我一直在嘗試一些選擇幾天沒有運氣。