收到以下错误:“SequelizeDatabaseError 列“createdAt”不存在”
Posted
技术标签:
【中文标题】收到以下错误:“SequelizeDatabaseError 列“createdAt”不存在”【英文标题】:Getting the following error: "SequelizeDatabaseError column "createdAt" does not exist" 【发布时间】:2017-02-19 11:46:23 【问题描述】:我一直在使用 this tutorial 和 github repository 使用 Postgres 数据库创建 express/passport/sequelize 授权。我知道问题出在哪里,我只需要解决方案方面的帮助。
一切就绪并创建数据库后,我尝试登录,但我不断收到错误:
“SequelizeDatabaseError”列“createdAt”不存在”。
似乎存在一个错误,即 Sequelize 3.X.X 无法读取 createdAt
并且我设置的数据库将自动小写所有创建的表。
我相信有一种方法可以将createdAt
要求改成小写,但我似乎根本找不到它。有没有其他人遇到过类似的问题?
【问题讨论】:
PostgreSQL 将标识符(例如表名和列名)折叠为小写,除非您将它们双引号。那么您是如何创建createdAt
列的呢?你是双引号吗?你是如何访问这个专栏的?你在那里双引号吗?
@muistooshort 我使用以下命令创建了 [createdAt:tagname]:'ALTER TABLE add users Add createAt timestamp;'我不知道您是否可以允许使用引号,我会尝试一下。
如果您需要区分大小写,请双引号:alter table users add "createdAt" timestamp
。
【参考方案1】:
我遇到了同样的问题,在配置文件中添加 "underscored":true 解决了这个问题。
"development":
"host": "localhost",
"dialect": "postgres",
"quoteIdentifiers":false,
"underscored":true
【讨论】:
您能否澄清/纠正您的帖子:关键字是underscore
还是underscored
?
很抱歉,它有下划线。【参考方案2】:
我遇到了同样的问题,我通过将它添加到 sequelize 配置来解决它
const sequelize = new Sequelize(
....
define:
underscored: true,
createdAt: 'created_at',
updatedAt: 'updated_at',
);
像这样在迁移中创建 created-at, updated-at :
created_at:
type: Sequelize.DATE,
allowNull: false,
,
updated_at:
allowNull: false,
type: Sequelize.DATE,
,
然后确保在模型文件中添加字段名称映射:
createdAt:
type: DataTypes.DATE,
field: 'created_at'
,
updatedAt:
type: DataTypes.DATE,
field: 'updated_at'
,
【讨论】:
【参考方案3】:如果你不想花时间你应该做的:
var config =
"define":
whatever: req.body.whatever,
...
,
timestamps: false
如果时间戳为假,您没有花时间,这可能是问题所在。
【讨论】:
【参考方案4】:如果您似乎无法将列名修复为 createdAt
,那么您可以在 sequelize 配置中添加一个额外的字段
var config =
"define":
"createdAt": "createdat",
"updatedAt": "updatedat"
/*don't forget to add host, port, dialect, etc.*/
var sequelize = new Sequelize(database, username, password, config);
【讨论】:
以上是关于收到以下错误:“SequelizeDatabaseError 列“createdAt”不存在”的主要内容,如果未能解决你的问题,请参考以下文章
为啥我会收到此错误? “气体估算错误,出现以下消息(见下文)。交易 > 执行可能会失败”
尝试加密密码时收到以下错误:Artifactory response: 403 Forbidden
为啥我会收到此错误? PLS-00103:在预期以下情况之一时遇到符号“CREATE”:
Discord 机器人错误 - SequelizeDatabaseError: SQLITE_ERROR: no such table: users