У меня есть модель с именем proxyPool
со следующими полями:
poolId: {
type: DataTypes.INTEGER,
references: {
model: 'pool',
key: 'id',
},
field: 'pool_id',
},
proxyId: {
type: DataTypes.INTEGER,
references: {
model: 'proxy',
key: 'id',
},
field: 'proxy_id',
},
Это таблица N: M для двух таблиц, которые имеют следующие ассоциации:
proxy.associate = (models) => {
proxy.belongsToMany(models.pool, {
through: models.proxyPool,
foreignKey: 'proxy_id',
});
};
и
pool.associate = (models) => {
pool.belongsToMany(models.proxy, {
through: models.proxyPool,
foreignKey: 'pool_id',
});
};
Когда я вызываю proxyPool.findOrCreate({where: {proxyId, poolId}})
, он говорит, что столбец proxyPool.proxyId не существует, но в сыром SQL я вижу:
SELECT "id", "pool_id" AS "poolId", "createdAt", "updatedAt", "pool_id", "proxy_id"
FROM "portnoi"."proxy_pool" AS "proxyPool"
WHERE "proxyPool"."proxyId" = '3' AND "proxyPool"."pool_id" = '1' LIMIT 1;
Почему он использует псевдоним для poolId = pool_id
, но не использует псевдоним, описанный в модели для proxyId = proxy_id
?