Postgresql 在sequelize中包含具有不同类型的外键

Postgresql 在sequelize中包含具有不同类型的外键,postgresql,sequelize.js,Postgresql,Sequelize.js,我有两张桌子,游戏和测验 测验有游戏表的外键(gameId),数据类型字符不同 所以当我尝试加入模型游戏时 Quiz.findAndCountAll({ include: [{ model: Games }], }); 它给出错误没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。 我定义了这样的关联: Quiz.belongsTo(models.Games, { foreignKey: "gameId" }); Games.hasMany(models

我有两张桌子,游戏和测验

测验有游戏表的外键(
gameId
),数据类型字符不同

所以当我尝试加入模型游戏时

Quiz.findAndCountAll({
  include: [{ model: Games }],
});
它给出错误
没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。

我定义了这样的关联:

Quiz.belongsTo(models.Games, { foreignKey: "gameId" });

Games.hasMany(models.Quiz, {
   foreignKey: {name: "gameId"},
   as: "Quiz",
   onDelete: "CASCADE"
});
我遇到了类似的问题:

但这个问题没有答案

当我在PG Admin上运行查询时


与其搜索强制转换的可能性,不如修复模式,使类型相同……但当前有太多的现有行,如果我更新类型会受到影响吗?取决于类型,但当
=
不起作用时,它们可能不太容易更改。但是,多行的存在并不能使不同类型的使用变得更好。在您的情况下,您如何成功地添加外键约束?我想没有?这是下一件坏事……如果您不修复数据类型,那么下次需要修复时将有多少行。你可以保证会有。然后@stickybit指出,您将能够拥有引用完整性(FKs)。正确的解决方案从来不是错误的选择,但每次应用创可贴后总是很难。