2017-07-29 62 views
1

我一直有一些問題Sequelize鍵和外鍵,他們不是在數據庫創建時我同步續集不創建外鍵?

這是我Users.js

module.exports = function(sequelize, DataTypes) { 
    var Users = sequelize.define('users', { 
     name: DataTypes.STRING  
    }, { 
     classMethods: { 
      associate: function(models) { 
       Users.belongsTo(models.group); 
      } 
     } 
    }); 
    return Users; 
} 

,這是我Groups.js

module.exports = function(sequelize, DataTypes) { 
    var Group = sequelize.define("group", { 
    nome: DataTypes.STRING 
    }); 
    return Group; 
}; 

已經嘗試過這樣的:

var Group = require('./Group'); 
module.exports = function(sequelize, DataTypes) { 
    var Users = sequelize.define('users', { 
     name: DataTypes.STRING  
    }); 
    Users.hasOne(Group); 
    return Users; 
} 

但沒有結果。

觀測值:我有models.sequelize.sync({力:真正})項目啓動

我缺少什麼?

謝謝!

回答

1

類似的問題:類方法去除 https://stackoverflow.com/a/45473628/6811324

User.hasOne(Group, {foreignKey: 'userId'}) // userId foreignKey on Group 

Users.hasOne(Group); // UserId foreignKey on Group 

    or 

Users.belongsTo(models.Group, {foreignKey: 'groupId'}); // groupId to User 
0

您正在使用什麼版本sequelize的? 我正在使用版本「sequelize」:「^ 4.31.2」與mysql2包並面臨同樣的問題。我切換回版本「sequelize」:「^ 2.0.0」與MySQL包和問題解決。

我認爲手動定義外鍵是更好的選擇。