【发布时间】:2020-07-08 21:41:28
【问题描述】:
我正在尝试使用以下用户模型将sequelize db 迁移到我的测试数据库,作为参考,以前也有过迁移。
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!`)
});
任何人有解决此问题的建议,无需硬完成数据库迁移。
【问题讨论】:
标签: node.js postgresql orm sequelize.js