title: Sequelize self association creates extra column
body: <p>I have the following model defined with Sequelize:</p>
  
  <pre><code>module.exports = function (sequelize, DataTypes) {
    var Genre = sequelize.define('Genre', {
      name: {
        type: DataTypes.STRING,
        allowNull: false
      }
    }, {
      classMethods: {
        associate: function (models) {
          Genre.hasMany(models.Genre, {as: 'subGenre'});
          Genre.belongsTo(models.Genre, {as: 'parentGenre'});
        }
      }
    });
  
    return Genre;
  }
  </code></pre>
  
  <p>The idea is that there will be parent genres, and each <em>may</em> have several sub-genres.  When I run <code>sync()</code>, the table is created fine, but there is an extra column (<code>GenreId</code>) that I can't quite explain:</p>
  
  <pre><code>"id";"integer";
  "name";"character varying";255
  "createdAt";"timestamp with time zone";
  "updatedAt";"timestamp with time zone";
  "GenreId";"integer";
  "parentGenreId";"integer";
  </code></pre>
  
  <p>The sensible way to interpret the model is to only have a <code>parentGenreId</code> column, but I am not sure how to define that bi-directional relationship (genre may have parent, genre may have many children) with only one column being added.</p>
  
  <p>How can I rework the model to allow the relationship to be defined correctly?</p>