Knex迁移种子完成,错误

我从一个看起来像这样的数组播种我的数据库,单词和定义是在多对多的关系

var seeds = [ { "word": "Click", "definitions": ["Computer", "Mouse", "Tasto", "Pulsante", "Selezionare"] }, { "word": "Galoppo", "definitions": ["Cavallo", "Andatura", "Trotto", "Ippica", "Passo"] }, { "word": "Raggio", "definitions": ["Sole", "Bicicletta", "Diametro", "Luce", "Laser"] }, { . . .goes on for 1089 objects 

这是我的尝试

 exports.seed = function (knex, Promise) { var promises = seeds.map(function (seed) { return knex('words').insert({ word: seed.word }, 'id').then(function (word_id) { var promises = seed.definitions.map(function (definition) { return knex('definitions').insert({ definition: definition }, 'id').catch(function (err) { if (err.code === 1062) return knex('definitions').select('id').where({ definition: definition }).then(function (duplicate) { return knex('definitions_words').insert({ definition_id: duplicate[0].id, word_id: word_id }); }); }).then(function (definition_id) { return knex('definitions_words').insert({ definition_id: definition_id, word_id: word_id }); }); }); return Promise.all(promises); }); }); return Promise.all(promises); }; 

单词在我的种子中是独一无二的,但定义可能会重复,所以我抓住了重复的错误,并抓取重复的id,把它放在交界处。 它似乎工作正常,结表实际上结束了1089 * 5行(5445),但我得到一个错误的cli:

Error: Cannot add or update a child row: a foreign key constraint fails (`mytable`.`definitions_words`, CONSTRAINT `definitions_words_definition_id_foreign` FOREIGN KEY (`definition_id`) REFERENCES `definitions` (`id`))