未处理的拒绝SequelizeDatabaseError

时间:2016-04-01 20:40:44

标签: sql-server node.js sequelize.js

我正在使用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',”将其添加到我的初始连接定义中。

1 个答案:

答案 0 :(得分:2)

您可以在sequelize构造函数中指定架构:

var sequelize = new Sequelize("db",
    "user",
    "pass", {
        host: "localhost",
        port: "1206",
        dialect: "mssql",
        define: {
            schema: "core"
        }
    });

然而,根据他们的code,你所做的事情似乎是正确的。在sequelize构造函数中,您还可以打开日志记录(logging:true)。记录应输出正在构造的确切sql。