Поиск источника ошибки псевдонима Postgres / Sequelize (код 42712) - PullRequest
0 голосов
/ 17 сентября 2018

Я использую Sequelize для управления базой данных Postgres SQL в проекте node.js.Я сталкиваюсь с ошибками пространства имен, но не могу понять, почему.

Код, который работает:

// db variable holds initialized database connection
const link = name => ( {
    through: db.define( name, {
        amount: Sequelize.FLOAT,
        unit: Sequelize.STRING,
        dataSource: Sequelize.STRING
    } ),
    as: name + 's'
} )

// All model variables (Material, Component etc) have model names
// identical to their variable names (bit without capitals)

Material.belongsToMany( Material, link( 'materialchildmaterial' ) )

Component.belongsToMany( Component, link( 'componentchildcomponent' ) )

Input.belongsToMany( Input, link( 'inputchildinput' ) )

Component.belongsToMany( Component, link( 'componentchilddependency' ) )

В тот момент, когда я добавляю следующие вещи, ломаются:

Input.belongsToMany( Component, link( 'componentchildinput' ) )

Ошибка:

{ name: 'SequelizeDatabaseError',
  parent:
   { name: 'error',
     length: 177,
     severity: 'ERROR',
     code: '42712',
     file: 'parse_relation.c',
     line: '420',
     routine: 'checkNameSpaceConflicts'  },
  original:
   { name: 'error',
     length: 177,
     severity: 'ERROR',
     code: '42712',
     file: 'parse_relation.c',
     line: '420',
     routine: 'checkNameSpaceConflicts'  } }

Из postgres docs код 42712 расшифровывается как 'DUPLICATE ALIAS'.

Моя путаница: яиспользуя уникальные имена для всего (afaik).Когда я изменяю имя ссылки Input <-> Component на 'randomthing', ошибка не появляется.

Я застрял в этом на хороший день сейчас.Любые подсказки приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...