- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当尝试在我的 heroku-postgres 数据库中撤消 sequelize 迁移时,我得到 SequelizeDatabaseError
,因为 ENUM 类型应该不存在。
我有几个带有 ENUM 数据类型的表/模型。在向下迁移中,我尝试删除表,然后也删除表的关联枚举数据类型。到目前为止,似乎只有一种迁移适用于两个方向。
我尝试手动删除每种类型,然后全部迁移,然后全部撤消,但在相同的模型上总是失败,说 ENUM 类型不存在(当它们显然是在向上迁移中创建时)。
这是一个向下迁移失败的模型。
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('PatientContacts', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
phoneHome: {
type: Sequelize.STRING,
allowNull: true,
},
phoneWork: {
type: Sequelize.STRING,
allowNull: true,
},
phoneMobile: {
type: Sequelize.STRING,
allowNull: false,
},
phonePreferred: {
type: Sequelize.ENUM,
values: ['Home','Work','Mobile', null]
},
smsNotifications: {
type: Sequelize.ENUM,
values: [true, false, null]
},
email: {
type: Sequelize.STRING,
allowNull: true,
},
emailConsent: {
type: Sequelize.ENUM,
values: [true, false, null]
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('PatientContacts')
.then(() => queryInterface.sequelize.query('DROP TYPE "public"."enum_PatientContacts_emailConsent;"'))
.then(() => queryInterface.sequelize.query('DROP TYPE "public"."enum_PatientContacts_phonePreferred;"'))
.then(() => queryInterface.sequelize.query('DROP TYPE "public"."enum_PatientContacts_smsNotifications;"'))
.catch(err => {
console.log(err);
throw new Error(err);
})
}
};
Error: SequelizeDatabaseError: type "public.enum_PatientContacts_emailConsent;" does not exist
at queryInterface.dropTable.then.then.then.catch.err (/app/migrations/20181213023202-create-PatientContact.js:56:13)
at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/app/node_modules/bluebird/js/release/promise.js:690:18)
at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:138:12)
at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)
at Async._drainQueues (/app/node_modules/bluebird/js/release/async.js:147:5)
at Immediate.Async.drainQueues [as _onImmediate] (/app/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:693:18)
at tryOnImmediate (timers.js:664:5)
at processImmediate (timers.js:646:5)
最佳答案
我很失望我在这个问题上被困了几个小时。
结束原始查询的分号应该出现在结束类型名称的双引号之后,但在结束整个 sql 查询本身的单引号之前。
关于javascript - SequelizeDatabaseError : dropping non-existent ENUM types, 但它们确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54301911/
我正在尝试编写一个测试来断言抛出 SequelizeDatabaseError 。我怎样才能要求SequelizeDatabaseError? 这不起作用: const { SequelizeData
我正在尝试分解用户的获取请求并将其放入名为查询的变量中。然后使用它的where子句将var查询传递到sequelize的findAll方法中,看起来Sequelize认为我正在寻找一个表CALLED查
我正在使用 Sequelize,并尝试在我的用户列中插入一行。但是,我不断收到以下错误: Unhandled rejection SequelizeDatabaseError: Invalid obj
我在 MySQL 的 Express.js 应用程序中使用 sequelize。 所有数据库凭据都存储在 .env 文件中并且是正确的: DATABASE_NAME= mydb DATABASE_US
我正在尝试使用外键创建一个数据库,但我一直收到 no such column: created_at 的错误,即使我没有在代码中的某处使用 created_at 。我想知道为什么以及如何修补这个问题。
我正在学习以下教程 here 一切正常,直到 Listing todo-items inside todos 向服务器发出获取请求时,我收到以下错误报告: {"name":"SequelizeData
我在发送如下更新请求时收到 SequelizeDatabaseError Data truncated for column 'position' at row 4:有关如何修复数据库错误的任何建议?
记录错误并将其发送回响应会给出完全不同的结果,即使它是相同的变量! adminservices.js var updateAdminById = function(new_admin_data, ca
我正在尝试为多对多关系创建一个连接表。 我收到以下错误: "name": "SequelizeDatabaseError", "parent": { "name": "error",
我正在尝试开发一个迷你购物网站,其中我使用 NodeJs Express 和 MySQL 来完成此操作 我的购物车可以有很多产品,每个产品可以属于多个购物车。 因此使用sequelize,我的关系如下
我正在尝试与基于 UUID 的两个表(我也有 id)进行连接,这些表有一些困难的关系...... 当我运行查询时,我得到了错误。 第一个表称为 用户 ,他的 UUID 被称为 registry_uui
我正在将 Sequelize 与 sqlite 一起使用,当我尝试向表中插入数据时出现错误 Executing (default): INSERT INTO `Users` (`id`,`userna
我正在使用 Sequelize 并且有以下代码: 迁移文件: 'use strict' module.exports = { up: (queryInterface, Sequelize) =>
我一直在经历 this tutorial和 github repository用于使用 Postgres 数据库创建 express/passport/sequelize 授权。我知道问题出在哪里,我
我开始使用 Sequelize。我正在关注他们在其网站上提供的文档:http://docs.sequelizejs.com/manual/installation/getting-started.ht
当我传递错误的 QueryParams 值(如负值)时。发生 未处理的拒绝 SequelizeDatabaseError: You have an error in your SQL syntax;检
我试着解释我的情况。我有两个模型: Film 和 Category 。它们是 N:M 协会。 迁移文件 20200123070411-createTables.js : 'use strict'; m
我有 5 个端点,实现了 4 种方法。对于 GET、POST、DELETE,它们都运行良好。我不明白为什么 PUT 方法不起作用。就我而言,我需要更新列 first_name 和 last_name
我正在编写一个简单的 NodeJS 代码来使用 sequelize 从/向 postgres 读/写。我的代码适用于一个表,但在测试另一个不相关的表时,类似的代码会中断。从错误堆栈跟踪中可以看出,我还
为我的模型运行简单的 sequelize.js 查询时出现此错误。 Executing (default): CREATE TABLE IF NOT EXISTS `Books` (`id` INTE
我是一名优秀的程序员,十分优秀!