Sequelize 和 TimescaleDB 出错:不支持超表的外键

问题描述

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)