我正在使用Sequelize,我正在尝试在我的用户列中插入一行。但是,我一直收到以下错误:
Unhandled rejection SequelizeDatabaseError: Invalid object name 'User'.
我正在连接到MSSQL服务器。我知道我有基本连接权,因为我可以通过sequelize.query运行sequelize的普通查询而没有问题。我怀疑是我没有正确指定架构或数据库。
我的模型定义:
var user = sequelize.define("User", {
ID: {
type: Sequelize.INTEGER,
unique: true,
autoIncrement: true
},
FirstName: {
type: Sequelize.STRING
},
LastName: {
type: Sequelize.STRING
},
CreateDate: {
type: Sequelize.DATE
},
UpdateDate: {
type: Sequelize.DATE
}
},{
tableName: 'User',
timestamps: false,
freezeTableName: true
});
我尝试使用该模型在我预先存在的数据库中创建/插入行。
User.schema('Core');
User.create({ ID: '1', FirstName: 'Bobert', LastName: 'Jones'}).then(function(user) {
console.log(user.get({
plain: true
}))
});
当我使用Sequelize的纯SQL来实现这一点时,我必须包含模式“插入Core.User”。我没有正确指定架构吗?我已经尝试通过在dialectOptions之前添加“schema:'Core',”将其添加到我的初始连接定义中。
答案 0 :(得分:2)
您可以在sequelize构造函数中指定架构:
var sequelize = new Sequelize("db",
"user",
"pass", {
host: "localhost",
port: "1206",
dialect: "mssql",
define: {
schema: "core"
}
});
然而,根据他们的code,你所做的事情似乎是正确的。在sequelize构造函数中,您还可以打开日志记录(logging:true)。记录应输出正在构造的确切sql。