序列化:更改列的“验证”元数据

JV *_*las 4 javascript migration database-migration database-table sequelize.js

是否可以使用迁移文件来更改列的“验证”元数据?我尝试了queryInterface.changeColumn方法,似乎它只能更改文档中提到的三个元数据(defaultValue,allowNull和type)。

我尝试在迁移文件的“ up”对象中执行以下操作:

queryInterface.changeColumn(
  'tableName',
  'columnName',
  {
    validate: {
      is: /new_regex_validation/
    }
  }
)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行“ sequelize db:migrate”时,上述尝试对我不起作用

为了简单起见,我将使用表定义详细说明我的问题:

我正在尝试更改这样的现有表:

var tableName = sequelize.define('tableName', {
    columnName: {
        type: DataTypes.STRING,
        unique: true,
        allowNull: false,
        validate: {
            is: /some_regex_validation/
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

使用sequelize迁移到此:

var tableName = sequelize.define('tableName', {
    columnName: {
        type: DataTypes.STRING,
        unique: true,
        allowNull: false,
        validate: {
            is: /a_new-or-different_regex_validation/
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

仅在使用顺序迁移时删除验证元数据:

var tableName = sequelize.define('tableName', {
    columnName: {
        type: DataTypes.STRING,
        unique: true,
        allowNull: false
    }
})
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

fel*_*ker 5

验证发生在客户端上,而不是数据库上。您不需要迁移。