0

我正在学习如何使用 sequelize,到目前为止它是一个很棒的 ORM,但我被自定义验证消息所困扰。

我正在使用 sequelize-cli 库来处理迁移,我发现了一个问题,如果您使用 sequelize-cli 创建表,自定义验证消息将不起作用,我尝试了 sequelize.sync 方法来创建表并且它起作用了。

代码

这就是我使用自定义验证消息创建字段的方式

钱包.js

  userId: {
    type: DataTypes.UUID,
      unique: {
        name: 'Wallets_userId_unique',
        msg: 'This user already have a wallet'
      }
   },

WalletMigration.js(不是实际的迁移文件名)

  userId: {
    allowNull: false,
    type: Sequelize.UUID,
    unique: true,
  },

当我尝试使用相同的 userId 创建一个 Wallet 时,我得到了 aValidation error但我应该得到This user already have a wallet.

我收到的消息是数据库提供的默认消息,因为我unique: true在迁移中使用了,如果我删除该选项,模型验证将不起作用。

我想知道我能做些什么来改变这种行为,或者我可能遗漏了什么?

4

0 回答 0