Почему я не могу синхронизировать сиквелиз более чем с одним активным соединением? - PullRequest
0 голосов
/ 26 марта 2019

Я пытался обновить некоторые модели при sequelize, и когда я запускал программу, sequelize.sync выдавал ошибку

ошибка: повторяющееся значение ключа нарушает уникальное ограничение "pg_type_typname_nsp_index"

и

'Ключ (typname, typnamespace) = (person_id_seq, 2200) уже существует.'

Я закрыл соединение с Postgres через pgadmin4 и повторно запустил скрипт, и он успешно обновил / создал определения моей модели.

Я отбросил таблицы и попытался воссоздать их, и, разумеется, он потерпит неудачу каждый раз, когда у меня было более 1 соединения.

Я использую экземпляр postgres на heroku с планом хобби , поэтому я не уверен, что ограничение ограничено этим

Модель:

db.Person = sequelize.define('person', {
    id: {
        type: Sequelize.BIGINT,
        primaryKey: true, 
        autoIncrement: true,
        allowNull: false
    },
    first_name: {
        type: Sequelize.STRING,
        allowNull: false
    },
    last_name: {
        type: Sequelize.STRING,
        allowNull: false
    },
    email: {
        type: Sequelize.STRING,
        unique: true,
        allowNull: false
    },
    passwordHash: {
        type: Sequelize.TEXT,
        allowNull: false
    }
},
{
    underscored: true,
    freezeTableName: true
});

db.Ingredient = sequelize.define('ingredient', {
    id: {
        type: Sequelize.BIGINT,
        primaryKey: true,
        autoIncrement: true,
        allowNull: false,
    },
    name: {
        type: Sequelize.TEXT,
        allowNull: false
    }
},
{
    underscored: true,
    freezeTableName: true
});

db.PersonIngredient = sequelize.define('person_ingredient', {
    id: {
        type: Sequelize.BIGINT,
        primaryKey: true, 
        autoIncrement: true,
        allowNull: false
    },
    custom_ingredient: {
        type: Sequelize.TEXT
    }
},
{
    underscored: true,
    freezeTableName: true
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...