在 SequelizeJs 中定义表时,其名称在执行时会更改,从而导致 ER_NO_SUCH_TABLE。

这是我的代码:

var API_TOKEN=database.sequelize.define('API_TOKENS',{
     user_id:{
        type:Sequelize.INTEGER,
     },
     token:{
        type:Sequelize.STRING
     }
});

和错误:

未处理的拒绝 SequelizeDatabaseError: ER_NO_SUCH_TABLE: 表 'tableName.API_TOKENs' 不存在

注意:注意执行时表名是如何更改的,我使用的是 mysql 数据库。

最佳答案

您可以使用可以放在 options 方法的 sequelize.define 中的两个可用选项之一

  • freezeTableName
  • tableName

  • 根据 sequelize 文档(关于它如何根据模型定义命名数据库表)



    通过使用 freezeTableName ,数据库表的名称将与您的模型名称完全相同。另一方面,如果你想要完全自定义的表名,你应该使用 tableName 属性。

    关于mysql - 在 SequelizeJs 中定义表时,它的名称在执行时更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42331656/

    10-10 00:40
    查看更多