title: Why is my promise chain failing?
body: <p>I'm trying to seed a database using knex. With the help of a contributor, I've successfully seeded one table where I need to take several steps:</p>
  
  <ol>
  <li>I need to pull id values from a couple of external tables so I can populate the seeding table's foreign key values.</li>
  <li>Generate <em>n</em> records in the seeding table.</li>
  <li>Populate the table.</li>
  </ol>
  
  <p>As mentioned, I have this working for one table. Because I'm smarter than a roofing tack and have to do almost the exact same thing for another table, I just copied what was working in the first seed file, dropped it into the second seed file, made a couple of appropriate modifications (specifically, in the second table I only have to populate 1 foreign key value at this point) and...it doesn't work.</p>
  
  <p>I'm at a loss. Surely there's some stupid little thing I'm missing in this code, but I can't find it. I'm trying to seed a <code>units</code> table that I have to populate with a <code>properties.id</code> value.</p>
  
  <pre><code>exports.seed = function(knex, Promise) {
      console.log('Seeding the %s table...', tableName);
  
      Promise.resolve([
          'properties',
      ])
      .map(function(table) {
          // Pull foreign key values (property_id)
          var ids = knex.select('id').from(table).pluck('id');
  
          // AT THIS POINT THE ids VARIABLE HAS A VALUE
  
          return ids;
      })
      .spread(function(properties) {
          // BUT I NEVER SEE THIS LOG PRINT
          console.log('SPREADING UNITS');
      });
  };
  </code></pre>
  
  <p>What am I doing wrong? I've dropped <code>.catch()</code> and <code>.error()</code> into this thing, but nothing gets written to the log. Somehow I just never seem to drop into the <code>.spread(...)</code> method.</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>For whatever it's worth, this is the content of the <code>.map</code> method before it's returned...</p>
  
  <pre><code>{ client:
     { Formatter: { [Function: Formatter_MySQL] super_: [Function: Formatter] },
       Raw: { [Function: Raw_MySQL] super_: [Object] },
       Transaction: { [Function: Transaction_MySQL] super_: [Object] },
       QueryBuilder: { [Function: QueryBuilder_MySQL] super_: [Object] },
       QueryCompiler: { [Function: QueryCompiler_MySQL] super_: [Function: QueryCompiler] },
       migrationConfig: { tableName: 'knex_migration', directory: './migrations' },
       seedConfig: { directory: './seeds' },
       Runner: { [Function: Runner_MySQL] super_: [Function: Runner] },
       connectionSettings:
        { host: '127.0.0.1',
          port: '3306',
          user: 'root',
          password: '',
          database: 'realster',
          timezone: 'UTC',
          charset: 'utf8',
          debug: false },
       Pool: { [Function: Pool_MySQL] super_: [Function: Pool] },
       databaseName: 'realster',
       pool: { client: [Circular], config: [Object], genericPool: [Object] },
       _events: { start: [Function], query: [Function] },
       Seeder: { [Function: Seeder_MySQL] super_: [Function: Seeder] } },
    _single: { table: 'properties', pluck: 'id' },
    _statements:
     [ { grouping: 'columns', value: [Object] },
       { grouping: 'columns', type: 'pluck', value: 'id' } ],
    _errors: [],
    _joinFlag: 'inner',
    _boolFlag: 'and',
    _notFlag: false,
    and: [Circular],
    _method: 'pluck' }
  </code></pre>