A funcionalidade de semente do Knex.js não fornece nenhuma garantia de ordem de execução. Cada semente deve ser escrita de forma que possa ser executada isoladamente - ou seja. sua abordagem de arquivo único está correta.
Se você quiser dividir seus arquivos de semente individuais em submódulos, tente o seguinte:
// initial-data.js
var operatingSystems = require('./initial-data/operating-systems.js');
var servers = require('./initial-data/servers.js');
exports.seed = function(knex, Promise) {
return operatingSystems.seed(knex, Promise)
.then(function () {
return servers.seed(knex, Promise);
}).then(function() {
// next ordered migration...
});
}