0

我使用 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 建立多对多关系的连接表吗?

4

0 回答 0