code: function drop(schemas) {
    var resolver = new Resolver(schemas);
    var knex = this.knex;
    return Promise.map(schemas || [], function(schema) {
      return (schema.preDrop || _.noop)(knex);
    })
    .then(function () {
      // Reduce force sequential execution.
      return Promise.reduce(resolver.resolve().reverse(), dropSchema.bind(this), []);
    }.bind(this));
  }
docs: Drop schemas tables. If it exists, it calls `preDrop` beforehand
  
  @param {[Schemas]} schemas
  @return {Promise}