Необработанный отказ SequelizeDatabaseError: тип "enum_ *" уже существует - PullRequest
0 голосов
/ 28 марта 2020

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

const User = Sequelize.define('user', {
    user_id: {
        type: sequelize.STRING,
        primary_key: true,
    },
    firstName:{
        type: sequelize.STRING,
        allowNull: false
    },
    lastName:{
        type: sequelize.STRING
    },
    dob:{
        type: sequelize.DATE
    },
    birth_time:{
        type: sequelize.TIME,
        allowNull: true
    },
    gender:{
        type: sequelize.ENUM,
        values: ['male', 'female']
    }
});

Но при этом я я получаю следующую ошибку после выполнения нескольких запросов к базе данных:

Unhandled rejection SequelizeDatabaseError: type "enum_yyy" already exists
    at Query.formatError (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/sequelize/lib/dialects/postgres/query.js:366:16)
    at /home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/sequelize/lib/dialects/postgres/query.js:72:18
    at tryCatcher (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/home/caesar/Workspace/xxx/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/bluebird/js/release/promise.js:689:18)
    at Async._drainQueue (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/bluebird/js/release/async.js:133:16)
    at Async._drainQueues (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/bluebird/js/release/async.js:143:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/home/caesar/Workspace/Devmetry/Projects/xxx/node_modules/bluebird/js/release/async.js:17:14)
    at processImmediate (internal/timers.js:456:21)
    at process.topLevelDomainCallback (domain.js:137:15)

Используемый мною метод db.sync выглядит следующим образом.

Sequelize.sync({ alter: true })
  .then(() => {
    console.log(`Database & tables generated!`)
});

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

...