2017-12-25 18 views
0

同じモデルが2回関連付けられているモデルがあります。以下は、モデル定義の下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

用のデータベース

EDIT

モデルdefinitonであるreservation_info.city_idあります。テーブル名の間に不一致があります。