美文网首页
egg-sequelize 踩坑记录

egg-sequelize 踩坑记录

作者: 无米学炊 | 来源:发表于2018-12-15 01:29 被阅读137次

1.自动将表名称变为复数:

image.png
egg.js typescript 开发采坑记录 发现解决方案:
在定义model的时候,禁止转换为复数
app.model.define('project', {
    id: { type: INTEGER, primaryKey: true, autoIncrement: true },
    name: STRING(20),
    created_at: DATE,
    updated_at: DATE
  }, {
    timestamps: true, // 自动维护时间戳 [ created_at、updated_at ]
    // 禁止修改表名,默认情况下,sequelize将自动将所有传递的模型名称(define的第一个参数)转换为复数
    // 但是为了安全着想,复数的转换可能会发生变化,所以禁止该行为
    freezeTableName: true
  });

或者直接修改 config/config.[env].js(下同)中的sequelize配置:

exports.sequelize = {
    dialect: 'mysql',
    ....
    define: {
      underscored: true, // 注意需要加上这个, egg-sequelize只是简单的使用Object.assign对配置和默认配置做了merge, 如果不加这个 update_at会被转变成 updateAt故报错
      // 禁止修改表名,默认情况下,sequelize将自动将所有传递的模型名称(define的第一个参数)转换为复数
      // 但是为了安全着想,复数的转换可能会发生变化,所以禁止该行为
      freezeTableName: true
    }
  }
  1. 时间存储问题
    mysql保存时会自动保存为UTC格式,可以在config中配置:
exports.sequelize = {
    dialect: 'mysql',
    ....
    timezone: '+08:00' // 保存为本地时区
  }

但是egg-sequelize在读取时间时,还是会返回UTC格式,还需要改一下配置,添加:

exports.sequelize = {
    dialect: 'mysql',
    ....
    timezone: '+08:00' ,// 保存为本地时区
    dialectOptions: {
      dateStrings: true,
      typeCast(field, next) {
        // for reading from database
        if (field.type === "DATETIME") {
          return field.string();
        }
        return next();
      }
    }
  }

详情请参考Setting timezone

相关文章

  • egg-sequelize 踩坑记录

    1.自动将表名称变为复数: 或者直接修改 config/config.[env].js(下同)中的sequeliz...

  • 2020-10-19随笔 踩坑0传值

    踩坑:当值传入0时,if条件判断时候会自己转换,记录踩坑。

  • Weex入门踩坑记录

    Weex入门踩坑记录

  • Flutter 开发记录

    Flutter 开发踩坑记录(干货总结)

  • 日常bug记录

    想记录日常碰到的bug,坑踩多了,以后应该碰到坑就比较容易处理或者会少踩坑,后面会慢慢记录bug,截图bug以及最...

  • 没事请多踩踩坑!

    人生事不尽意,别人挖坑我踩坑。 请在这里留下你的踩坑记录,让别人少入坑。

  • Windows下GithubPages博客快速搭建

    Windows下开发坑总是比较多的,但是本人没Mac,只好踩一遍坑记录下。本文主要是安装过程&踩坑记录,故不对细节...

  • Retrofit Https踩坑记录

    Retrofit Https踩坑记录 前言 新司机上路,坑多,本文重点是踩坑,不详细讲retrofit用法,本文不...

  • 个人博客标签分类

    【小结】零碎的小结 【踩坑记录】报错等记录,防止再度踩坑 【总结】比较完整的总结 【想法】自己的一些想法和推论 【...

  • 踩坑记录

    如果当前页面是push出的页面,切换根视图控制器没问题;如果当前页面是present出的页面,切换跟视图控制器之前...

网友评论

      本文标题:egg-sequelize 踩坑记录

      本文链接:https://www.haomeiwen.com/subject/rdhohqtx.html