La funzionalità seed di Knex.js non fornisce garanzie sull'ordine di esecuzione. Ogni seme dovrebbe essere scritto in modo tale da poter essere eseguito in isolamento, ad es. il tuo approccio a file singolo è corretto.
Se vuoi suddividere i tuoi singoli file seme in sottomoduli, puoi provare quanto segue:
// 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...
});
}