我想在我的银行模型定义中添加一个与我的 postrgres 表定义相匹配的约束。
我已经尝试使用 queryInterface 来执行此操作,但我遇到了 queryInterface not defined 错误。
这是我的银行模型定义:
const Banks = db.define('banks', {
bank_name: {
type: Sequelize.STRING,
allowNull: false
},
floor_number: {
type: Sequelize.STRING,
allowNull: false
},
bank_col_num: {
type: Sequelize.INTEGER,
allowNull: false
},
bank_row_num: {
type: Sequelize.INTEGER,
allowNull: false
},
bank_orientation: {
type:Sequelize.CHAR
}
}).then(
queryInterface.addConstraint('Banks', ['bank_orientation'], {
type: 'check',
where: {
bank_orientation: ['horizontal', 'vertical']
}
})
)
这是我的银行 sql 模型定义:
CREATE TABLE banks (
id SERIAL,
bank_name VARCHAR(50) NOT NULL,
floor_number VARCHAR(50) NOT NULL,
bank_col_num INTEGER NOT NULL,
bank_row_num INTEGER NOT NULL,
bank_orientation CHAR NOT NULL CHECK (bank_orientation IN ('horizontal', 'vertical')),
PRIMARY KEY (id)
);
我希望模型可以访问我的 postgres 表
最佳答案
我没有测试下面的内容,但我重新格式化了 .then
语句。我还在 queryInterface
之前添加了一个 db
,因为 (queryInterface
) 在您的示例中没有在其他任何地方定义。
const Banks = db.define('banks', {
bank_name: {
type: Sequelize.STRING,
allowNull: false
},
floor_number: {
type: Sequelize.STRING,
allowNull: false
},
bank_col_num: {
type: Sequelize.INTEGER,
allowNull: false
},
bank_row_num: {
type: Sequelize.INTEGER,
allowNull: false
},
bank_orientation: {
type:Sequelize.CHAR
}
}).then(() => {
return db.queryInterface.addConstraint('Banks', ['bank_orientation'], {
type: 'check',
where: {
bank_orientation: ['horizontal', 'vertical']
}
})
})
关于javascript - 如何向需要匹配 postrgres 数据库中现有表的 sequelize 模型添加约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56939755/