2017-08-17 15 views
1

に取ることはありません。 Node.jsのsequelizeモデルファイルは、私は次のように見えるモデルファイルを持っているアカウント構成

'use strict' 

module.exports = function (sequelize, DataTypes) { 
    let User = sequelize.define('user', { 
    id: { 
     type: DataTypes.INTEGER(11), 
     allowNull: false, 
     primaryKey: true, 
     autoIncrement: true 
    } 
    }, { 
    classMethods: { 
     associate: function(models) { 
     this.belongsToMany(models.role, { 
      through: { 
      model: 'user_role' 
      }, 
      foreignKey: 'user_id' 
     }) 
     } 
    } 
    }, { 
    tableName: 'user', 
    timestamps: false, 
    underscored: true 
    } 
) 
return User 
} 

私は、SequelizeDatabaseError: Table 'sc.users' doesn't existエラーが発生します。このモデル上の任意のクエリを作ってみる

。データベース usersが存在しないことは確かですが、その名前は userです。モデルに関する情報を追加しました( tableName: 'user')。

私の設定オプションを読むことができない理由を理解できません。 モデルファイルを構成するためにモデルファイルを準備するにはどうすればよいですか?

答えて

0

は個人的に、私はオーバーライドテーブル名を使用したことがありませんが、私の知る限りdocumentationとテストherehereから見ることができるよう、また、あなたはしたテーブル名を使用するためにtruefreezeTableNameを設定する必要がありますモデルは次のようになります:

'use strict' 

module.exports = function (sequelize, DataTypes) { 
    let User = sequelize.define('user', { 
    id: { 
     type: DataTypes.INTEGER(11), 
     allowNull: false, 
     primaryKey: true, 
     autoIncrement: true 
    } 
    }, { 
    classMethods: { 
     associate: function(models) { 
     this.belongsToMany(models.role, { 
      through: { 
      model: 'user_role' 
      }, 
      foreignKey: 'user_id' 
     }) 
     } 
    } 
    }, { 
    freezeTableName: true, 
    tableName: 'user', 
    timestamps: false, 
    underscored: true 
    }) 
    return User 
} 
関連する問題