2015-10-10 84 views
1

這是我的模型是如何在帆結構:帆js和Sequelize,沒有協會加入到數據庫

myapp 
--api 
----controllers 
----models 
-----User.js 
------Role.js 

user.js的

module.exports = { 
attributes:{ 
    id: { 
     type: Sequelize.INTEGER, 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    username: { 
     type: Sequelize.STRING, 
    }, 
    password: { 
     type: Sequelize.STRING, 
    } 
}, 
associations: function() { 
    User.hasOne(Role, {foreignKey: 'id', as: 'role' }); 
} 
}; 

Role.js

module.exports = { 
attributes:{ 
    id: { 
     type: Sequelize.INTEGER, 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    name: { 
     type: Sequelize.STRING, 
    } 
} 
}; 

後帆升降機,在postgresql我有用戶表與id,用戶名,密碼,createdat和updatedat +角色表與ID,名稱,createdat和up datedat。沒有用於「用戶中的角色」表的foreignKey。

我該如何解決這個問題? 我正在使用sails-hook-sequelize和sails-hook-sequelize-blueprints,可以發生這種情況嗎?

謝謝!

編輯:

正確的方法是:

module.exports = { 
attributes:{ 
    id: { 
     type: Sequelize.INTEGER, 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    username: { 
     type: Sequelize.STRING, 
    }, 
    password: { 
     type: Sequelize.STRING, 
    } 
}, 
associations: function() { 
    User.hasOne(Role, { 
     as : 'role', 
     foreignKey: { 
     name: 'roleId', 
     allowNull: false 
     } 
    }); 
} 
}; 

回答

1

createdAtupdatedAt列默認添加,除非你設置timestamps選項設置爲false。請參閱docs

要添加外鍵約束,您需要爲角色模型定義associations