我正在使用nodejs + sequelize开发一个应用程序。我阅读了sequelize的文档(这不是很好......)因为我在开发环境中我想在新执行之前删除表,所以,这就是代码
sequelize.sync({
force: true,
logging: console.log
}).then(function(){});
如果数据库中没有表,则会产生异常,我认为不应该
执行(默认):DROP TABLE IF EXISTS“凭证”CASCADE; 未处理的拒绝SequelizeDatabaseError:必须是关系凭证的所有者 在Query.formatError
如果我已经有了表,那么它会尝试两次删除最后一个表,这会重复异常
执行(默认):DROP TABLE IF EXISTS“凭证”CASCADE; 执行(默认):DROP TABLE IF EXISTS“requestline”CASCADE; 执行(默认):DROP TABLE IF EXISTS“请求”CASCADE; 执行(默认):DROP TABLE IF EXISTS“products”CASCADE; 执行(默认):DROP TABLE IF EXISTS“黑名单”CASCADE; 执行(默认):DROP TABLE IF EXISTS“costumer”CASCADE; 执行(默认):DROP TABLE IF EXISTS“costumer”CASCADE; 未处理的拒绝SequelizeDatabaseError:必须是关系的所有者 负荷消费 在Query.formatError
无法理解为什么...... 所以,我就这样解决了这个问题
//workaround
sequelize.sync({
force: true,
logging: console.log
})
.then(function () { })
.catch(function (err) {
sequelize.sync({
logging: console.log
}).then(function () { })
})
哪个确实有效,但它很难看...... 有什么想法吗?