123456789101112131415161718192021222324252627282930313233343536 |
- var Utils = require("./../utils")
- module.exports = {
- addForeignKeyConstraints: function(newAttribute, source, target, options) {
- // FK constraints are opt-in: users must either rset `foreignKeyConstraints`
- // on the association, or request an `onDelete` or `onUpdate` behaviour
- if(options.foreignKeyConstraint || options.onDelete || options.onUpdate) {
- // Find primary keys: composite keys not supported with this approach
- var primaryKeys = Utils._.filter(Utils._.keys(source.rawAttributes), function(key) {
- return source.rawAttributes[key].primaryKey
- })
- if (primaryKeys.length === 1) {
- if (!!source.options.schema) {
- newAttribute.references = source.daoFactoryManager.sequelize.queryInterface.QueryGenerator.addSchema({
- tableName: source.tableName,
- options: {
- schema: source.options.schema,
- schemaDelimiter: source.options.schemaDelimiter
- }
- })
- } else {
- newAttribute.references = source.tableName
- }
- newAttribute.referencesKey = primaryKeys[0]
- newAttribute.onDelete = options.onDelete
- newAttribute.onUpdate = options.onUpdate
- }
- }
- }
- }
|