javascript - 如何向需要匹配 postrgres 数据库中现有表的 sequelize 模型添加约束?

标签 javascript sql database postgresql sequelize.js

我想在我的银行模型定义中添加一个与我的 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/

相关文章:

javascript - 为什么 getElementById 不适用于文档以外的元素?

javascript - 检查 JavaScript 中的 'undefined' && ip 格式不起作用

javascript - bootstrap-datetimepicker:将分钟固定为某个值

mysql - 使用唯一列执行 SQL 批量插入/更新时保持数据完整性和一致性

mysql - 使用 PHP 和 MySQL 创建简单的项目搜索数据库的教程?

php - MySQL查询选出成绩不全的学生 'A'

javascript - Alexa 内置插槽类型 : No value being passed

mysql - 改进子选择查询

mysql - 如何计算 3 个不同表格之间的利润

ruby-on-rails - Ruby - 创建 postgresql 数据库的最佳方法