title: No Sequelize instance passed
body: <p>I am trying to outsource my models for the <code>dbInit</code> function from my dbController because I have several models which makes the dbController to big.</p>
  
  <p>So I am calling <code>initDb</code> from my <code>db_controller.js</code> which looks like this (I use that docu <a href="http://docs.sequelizejs.com/manual/getting-started.html" rel="noreferrer">http://docs.sequelizejs.com/manual/getting-started.html</a> )</p>
  
  <pre><code>const userModel = require('../model/user')
  const subjectModel = require('../model/subject')
  const Sequelize = require('sequelize')
  const seq = new Sequelize({
    dialect: 'sqlite',
    storage: './user.db'
  })
  
  async function initDb () {
    await userModel.user.initUser()
    await subjectModel.subject.initSubject()
    userModel.user.userClass.hasMany(subjectModel.subject.subjectClass)
  }
  </code></pre>
  
  <p>The <strong>user</strong> in the <code>user.js</code> looks like this:</p>
  
  <pre><code>const Sequelize = require('sequelize')
  const seq = new Sequelize({
    dialect: 'sqlite',
    storage: './user.db'
  })
  
  class User extends Sequelize.Model {
  }
  
  exports.user = {
    initUser: initUser,
    userClass: User
  }
  
  async function initUser () {
    return new Promise(resolve =&gt; {
      User.init(
        // attributes
        {
          firstName: {
            type: Sequelize.STRING,
            allowNull: false
          },
          lastName: {
            type: Sequelize.STRING,
            allowNull: false
          },
          email: {
            type: Sequelize.STRING,
            allowNull: false
          }
        },
        // options
        {
          seq,
          modelName: 'user'
        }
      )
      resolve()
    })
  }
  </code></pre>
  
  <p>and pretty much the same for the <code>subject.js</code></p>
  
  <pre><code>const Sequelize = require('sequelize')
  const sequelize = new Sequelize({
    dialect: 'sqlite',
    storage: './user.db'
  })
  
  class Subject extends Sequelize.Model {
  }
  
  exports.subject = {
    initSubject: initSubject,
    subjectClass: Subject
  }
  
  async function initSubject () {
    return new Promise(resolve =&gt; {
      Subject.init(
        // attributes
        {
          name: {
            type: Sequelize.STRING,
            allowNull: false
          }
        },
        // options
        {
          seq: sequelize,
          modelName: 'subject'
        }
      )
      resolve()
    })
  }
  </code></pre>
  
  <p>So when I try to execute this via <code>node db_controller.js</code></p>
  
  <p>I receive this <strong>error</strong> (shortened)</p>
  
  <pre><code>(node:12444) UnhandledPromiseRejectionWarning: Error: No Sequelize instance passed
      at Function.init (D:\Git\ppb\node_modules\sequelize\lib\model.js:915:13)
      at resolve (D:\Git\ppb\src\model\user.js:26:10)
      at new Promise (&lt;anonymous&gt;)
      at Object.initUser (D:\Git\ppb\src\model\user.js:25:10)
      at initDb (D:\Git\ppb\src\controller\db_controller.js:18:24)
      at Object.&lt;anonymous&gt; (D:\Git\ppb\src\controller\db_controller.js:45:1)
      at Module._compile (module.js:652:30)
      at Object.Module._extensions..js (module.js:663:10)
  </code></pre>
  
  <p>Thank you very much for any advice in advance!</p>