Node.js Sequelize关联存在于pgAdmin中,但在查询期间它会一直查找未知列

Node.js Sequelize关联存在于pgAdmin中,但在查询期间它会一直查找未知列,node.js,sequelize.js,pgadmin,Node.js,Sequelize.js,Pgadmin,一段时间以来,我一直在努力让我的联想正常运作。我有一个拍卖模型和一个出价模型,拍卖模型有很多出价。拍卖中有一个外键BidId,它链接到出价中的bid_id Auction.js const Sequelize = require('sequelize'); const sequelize = require('../config/database'); const User = require('./User'); const Status = require('./Status'); con

一段时间以来,我一直在努力让我的联想正常运作。我有一个拍卖模型和一个出价模型,拍卖模型有很多出价。拍卖中有一个外键BidId,它链接到出价中的bid_id

Auction.js

const Sequelize = require('sequelize');
const sequelize = require('../config/database');

const User = require('./User');
const Status = require('./Status');
const Vehicle = require('./Vehicles')
const Bids = require('./Bids');
const tableName = 'Auctions';
const Auction = sequelize.define('Auctions', {
  auc_id: {
    type: Sequelize.UUID,
    defaultValue: Sequelize.UUIDV4, // generate the UUID automatically
    primaryKey: true,
  },
  features: {
    type: Sequelize.JSONB,
  },
  bid_amount: {
    type:Sequelize.STRING
  },
  BidId: {
    type: Sequelize.INTEGER
  }
});

module.exports = Auction
Bids.js

const Sequelize = require('sequelize');


// const resolver = require('graphql-sequelize');
const sequelize = require('../config/database');
const Auction = require('./Auction');

const tableName = 'bids';
const Bids = sequelize.define('Bids', {
  bid_id: {
    type: Sequelize.INTEGER,
    autoIncrement: true,
    primaryKey: true
  },
  createdAt: {
   type: Sequelize.DATE,
   // defaultValue: Sequelize.NOW
  },
  updatedAt: {
    type: Sequelize.DATE,
    defaultValue: Sequelize.NOW,
  },
  amount: {
    type: Sequelize.INTEGER
  },
  bid_amount: {
    type:Sequelize.STRING
  },
  bid_no: {
    type: Sequelize.UUID,
    defaultValue: Sequelize.UUIDV4,
  },
}, 
{tableName})


Bids.hasOne(Auction, {foreignKey: 'BidId'}) // Bids is the source, Auction is the target
Auction.hasMany(Bids);
module.exports = Bids
当我使用以下查询时: const findbidonaction=>{Auction.findAll{where:{BidId:1},包括:[{model:Bids}]}。thendata=>console.logresult,data} 我收到错误:未处理的拒绝SequelizeDatabaseError:列GSMBids.GSMAuctionAucId不存在

我不知道GSMBids.GSMAuctionAucId应该来自哪里,我假设Sequelize在使用关联时默认需要一个具有该名称的列,但这没有意义,因为我定义了专门链接的列。看起来它试图链接auc_id,但我不想这样

编辑:如果我切换查询并执行以下操作: const findbidonaction=>{Bids.findAll{where:{bid_id:1},包括:[{model:Auction}]}。thendata=>console.logresult,data}


我收到未处理的拒绝SequelizeAgerLoadingError:GSMAAction未与GSMBID关联

我怀疑Sequelize不知道拍卖中的哪个字段与出价相关。您可以尝试:

Auction.hasMany(Bids,
         {
         sourceKey : "BidId",  // auction
         foreignKey: "bid_id"  // bids
         });
即使错误不再发生,也要检查生成的SQL并确保连接正确