title: Knex migration dropForeign not working?
body: <p>Using the latest version of Knex.js with a Postgresql DB. </p>
  
  <p>I've got an earlier migration that renames some tables. Basically, all the tables were plural (so devices instead of device), and now they are singular. Now we've decided we'd like to drop one of those renamed tables. It has a foreign key to another table. So I thought I should be able to simply drop the foreign key from the one table (device_group, used to be devices_groups), then remove the desired table(device, used to be devices). So I created the migration below:</p>
  
  <pre><code>exports.up = function(knex, Promise) {
    return knex.table('device_group', function (table) {
      table.dropForeign('device_id', 'devices_groups_device_id_foreign');
      table.dropColumn('device_id');
    })
    .then(() =&gt; {
      return knex.schema.dropTable('device');
    })
    .then(() =&gt; {
      return knex.table('device_group', function (table) {
        table.string('device_id');
      });
    });
  };
  </code></pre>
  
  <p>Now whenever I run this, I don't see anything in the debug about trying to drop the foreign key. Instead, I just get the following message.</p>
  
  <pre><code>Knex:warning - migrations failed with error: drop table "device" - cannot drop table device because other objects depend on it
  </code></pre>
  
  <p>Am I missing something obvious here? It seems like it's trying to drop the table before dropping the foreign key.</p>