我使用 Node.JS 和 Sequelize 与 TimescaleDB 关联表以实现多对多关系。我得到了错误: -
SequelizeDatabaseError:不支持超表的外键
我发现了相关问题和我关于 TimescaleDB 的错误,如下所示:[https://github.com/timescale/timescaledb/issues/1394][1]
我的源代码如下:-
const state = stateModel(sequelize, DataTypes);
const alarm = alarmModel(sequelize, DataTypes);
class state_alarm extends Sequelize.Model{}
state_alarm.init({
stateUnitId: { type: DataTypes.INTEGER, references: { model: state, key: "state_id" } },
stateUnitName: { type: DataTypes.STRING(25) },
alarmAlarmId: { type: DataTypes.INTEGER, references: { model: alarm, key: "alarm_id" } },
alarmHostName: { type: DataTypes.STRING(25) },
}, {
sequelize,
modelName: "state_alarm",
timestamps: true,
});
state_alarm.sync()
.catch((err)=>{
logger.error(err.message);
});
state.belongsToMany(alarm, { through: state_alarm });
alarm.belongsToMany(state, { through: state_alarm });
我是 TimescaleDB 的新手,我不确定是否有另一种方法可以解决这个问题。任何人都可以帮助我建议与 Sequelize 建立多对多关系的连接表吗?