2017-12-25 18 views
0

동일한 모델이 두 번 연결된 모델이 있습니다. 아래는 모델 정의 아래Sequelize Query Fail

const RiStockSplitType = sequelize.define("RiStockSplitType", 
    // Columns 
    base.addColumns({ 
     "id": {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true}, 
     "splitType": {type: DataTypes.INTEGER, defaultValue: 1, field: "split_type"} 
    }, DataTypes), 
    // Configs 
    new base.DefaultModelConfig("table") 
); 
RiStockSplitType.associate = function (models, value) { 
    value.belongsTo(models.ReservationInfo, { 
     foreignKey: { 
      allowNull: false, 
      name:"reservation_info_id" 
     }, 
     as: "reservation_info" 
    }); 
    value.belongsTo(models.ReservationInfo, { 
     foreignKey: { 
      allowNull: false, 
      name:"split_type_ri_id" 
     }, 
     as:"split_type_ri" 
    }); 
}; 
return RiStockSplitType; 

내가

RiStockSplitType.findAll({ 
     include: [{ 
      model: ReservationInfo, 
      as:"reservation_info" 
     }], 
    }) 
)}).then(function(){console.log(arguments)}).catch(err => {console.error('ERROR:', err);}); 

위의에 의해 생성 된 SQL 쿼리는

Executing (default): SELECT `RiStockSplitType`.`id`, `RiStockSplitType`.`split_type` AS `splitType`, `RiStockSplitType`.`created_on` AS `createdOn`, `RiStockSplitType`.`updated_on` AS `updatedOn`, `RiStockSplitType`.`reservation_info_id`, `RiStockSplitType`.`split_type_ri_id`, `reservation_info`.`id` AS `reservation_info.id`, `reservation_info`.`created_on` AS `reservation_info.createdOn`, `reservation_info`.`updated_on` AS `reservation_info.updatedOn`, `reservation_info`.`city_id` AS `reservation_info.city_id` FROM `warehouse_ristocksplittype` AS `RiStockSplitType` LEFT OUTER JOIN `warehouse_reservation_info` AS `reservation_info` ON `RiStockSplitType`.`reservation_info_id` = `reservation_info`.`id`; 

그리고 내가 오류가

인을 발사하고있는 SequelizeQuery은이다
SequelizeDatabaseError: Unknown column 'reservation_info.city_id' in 'field list' 

Sequelize v4와 Node 6.9.5를 사용하고 있습니다. 오류의 원인을 파악할 수 없습니다. 오류에 언급 된 열은 DefaultModelConfig에 전달 된 이름 warehouse_reservationinfo 반면 쿼리가 warehouse_reservation_info에 합류 ReservationInfo

const ReservationInfo = sequelize.define("ReservationInfo", 
    // Columns 
    base.addColumns({ 
     "id": {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true}, 
    }, DataTypes), 
    // Configs, 
    new base.DefaultModelConfig("warehouse_reservationinfo")); 

ReservationInfo.associate = function (models, value) { 
    value.belongsTo(models.City, { 
     foreignKey: { 
      allowNull: false, 
      name: 'city_id' 
     } 
    }); 
}; 
return ReservationInfo; 
+0

CLI를 통해 SQL 쿼리를 실행하려고 시도 했습니까? –

+0

@ YochaiAkoka 예, 제가 한 것과 같은 오류가납니다. –

+0

ReservationInfo에 대한 모델 정의를 게시 할 수 있습니까? – Faz

답변

1

에 대한 데이터베이스

편집

모델 definiton에 reservation_info.city_id있다. 테이블 이름이 일치하지 않습니다.