2017-01-20 5 views
0

В настоящее время я пытаюсь заполнить базу данных PostgreSQL с sequelize, я крюки заявили на моей модели, которые работают нормально при создании отдельных записей (например, тесты)Run sequelize модель крючки при посеве

Имеют ли данные в моем файл семян должен быть таким, как показано в финальной таблице, или я могу вызвать крючки при создании?

Вот мои файлы:

/*users-seed.js*/ 
'use strict' 

module.exports = { 
    up: function (queryInterface, Sequelize) { 
    return queryInterface.bulkInsert('Users', [/*users-data*/]) 
    }, 
    down: function (queryInterface, Sequelize) { 
    return queryInterface.bulkDelete('Users', null, {}) 
    } 
} 

И

/*user.js*/ 
module.exports = function (sequelize, DataTypes) { 
    let User = sequelize.define('User', { 
    /* user attributes */ 
    }, { 
     instanceMethods: { 
     hashPassword: function (password) { 
      return bcrypt.hash(password, 15) 
     }, 
     hashEmail: function (email) { 
      return crypto.createHash('sha256').update(email).digest('hex') 
     } 
     }, 
     hooks: { 
     beforeCreate: function (user) { 
      return user.hashPassword(user.password_digest).then(function (hashedPassword) { 
      user.email = user.hashEmail(user.email) 
      user.password_digest = hashedPassword 
      }).catch(e => { console.log('e', e); throw new Error(e) }) 
     }, 
     beforeBulkCreate: function (users) { 
      return users.forEach(function (user) { 
      return user.hashPassword(user.password_digest).then(function (hashedPassword) { 
       user.email = user.hashEmail(user.email) 
       user.password_digest = hashedPassword 
      }).catch(e => { console.log('e', e); throw new Error(e) }) 
     }) 
     } 
     } 
    }) 
    return User 
} 

ответ

0

Ok так что это была ошибка моя, я missunderstood как queryInterface.bulkInsert() работает, я думал, что это называется моделью крючки, прежде чем «вставить» (да, это то, что я пропустил) в базе данных, он вставляет необработанные данные, которые вы вставляете в строку, я думаю, именно поэтому в документах показаны крючки с экземпляром модели, использующим bulkCreate, bulkUpdate и т. д.

 Смежные вопросы

  • Нет связанных вопросов^_^