gpt4 book ai didi

json - 使用 sequelize 为 JSON 列添加 MariaDB 约束检查

转载 作者:行者123 更新时间:2023-12-03 22:18:44 24 4
gpt4 key购买 nike

我使用的是 MariaDB v10.2.11,从 v10.2.7 开始,您可以使用带有约束的 JSON 列来验证行的 JSON 值。

我想通过 Sequelize 迁移添加该约束,但我不知道如何添加。

MariaDB JSON 文档:

  • https://mariadb.com/resources/blog/json-mariadb-102
  • https://mariadb.com/kb/en/library/json-data-type/
  • 最佳答案

    我正在分享我在这个问题( https://github.com/sequelize/sequelize/issues/8767 )(这是我的)中提出的解决方案。

    module.exports = {
    up: (queryInterface, Sequelize) =>
    queryInterface
    .createTable('tableName', {
    // id, other columns
    column1: Sequelize.JSON,
    // more columns
    })
    .then(() =>
    queryInterface.addConstraint('tableName', ['column1'], {
    type: 'check',
    where: {
    column1: Sequelize.literal('JSON_VALID(column1)'),
    },
    name: 'check_column1_has_valid_json',
    }),
    ),
    down: (queryInterface) => queryInterface.dropTable('tableName'),
    };

    由于 createTableaddConstraint 返回一个 promise ,因此可以在一次迁移中链接多个操作:)

    关于json - 使用 sequelize 为 JSON 列添加 MariaDB 约束检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47729194/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com