4

knex を使用してデータベースをシードしようとしています。寄稿者の助けを借りて、いくつかの手順を実行する必要がある 1 つのテーブルのシードに成功しました。

  1. シード テーブルの外部キー値を入力できるように、いくつかの外部テーブルから ID 値を取得する必要があります。
  2. シード テーブルにn 個のレコードを生成します。
  3. テーブルにデータを入力します。

前述のように、これは1つのテーブルで機能しています。私はルーフィングタックよりも賢く、別のテーブルに対してほぼ同じことを行う必要があるため、最初のシードファイルで機能していたものをコピーし、2 番目のシードファイルにドロップし、いくつかの適切な変更を加えました (具体的には、2番目のテーブルでは、この時点で1つの外部キー値を入力するだけで済みます)...機能しません。

私は途方に暮れています。確かに、このコードに欠けているばかげた小さなことがいくつかありますが、それを見つけることができません。units値を入力する必要があるテーブルをシードしようとしていproperties.idます。

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');
    });
};

私は何を間違っていますか?私はこのことに落ち込みましたが.catch().error()ログには何も書き込まれません。.spread(...)どういうわけか、私は決してメソッドに立ち入らないようです。

アップデート

それが何であれ、これは.map返される前のメソッドの内容です...

{ 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' }
4

1 に答える 1