NODEJS SEQUELIZE with POSTGRES - 无法创建表 - getdate() 函数不存在

问题描述 投票:0回答:1

我有一个使用sequelize作为ORM的node.js应用程序,如果本地postgres开发数据库中不存在表,它应该创建表。

如果存在“已创建”或“已修改”等时间戳列,则由sequelize创建的查询都会失败,这些列应将创建记录的时间作为默认值。

sequelize 生成的创建表查询包含此类字段的 GETDATE() 函数。

将查询粘贴到 PGAdmin 工具中会引发与 GETDATE() 相同的错误,就像在 node.js 中登录控制台一样。

我可以手动将 PGAdmin 中的查询更改为 NOW() 函数,但这令人沮丧,因为我的架构包含多个具有此类列的表。

这个问题有解决办法吗?

以下是sequelize、pg和pg-hstore的版本

"pg": "^8.11.1", "pg-hstore": "^2.3.4" “续集”:“^6.32.1”

postgres 的版本是“PostgreSQL 15.3,由 Visual C++ build 1914 编译,64 位”

node.js postgresql sequelize.js getdate
1个回答
0
投票

您可以定义模型如下:

    const YourModel = sequelize.define('YourModel', {
      // Other columns...
    
      createdAt: {
        type: DataTypes.DATE,
        allowNull: false,
        defaultValue: Sequelize.literal('NOW()')
      },
    
      updatedAt: {
        type: DataTypes.DATE,
        allowNull: false,
        defaultValue: Sequelize.literal('NOW()')
      }
    }, {
      // Other model options...
    });

使用这种方式可以覆盖默认的 Sequelize 功能

© www.soinside.com 2019 - 2024. All rights reserved.