seed method

Future<void> seed(
  1. List<Seeder> seeders
)

Runs each seeder's up() in order, and shows what they changed.

The runs are recorded the same way as seed in metro live, so seed:rollback <name> undoes them. Throws a LiveException when a seeder fails, after putting back what it had changed.

Implementation

Future<void> seed(List<Seeder> seeders) async {
  final List<SeedRun> runs = await SeedRecorder.upAll(seeders);
  for (final SeedRun run in runs) {
    run.log.forEach(writeOutput);
    if (run.failed) {
      throw LiveException('${run.name} failed: ${run.error}');
    }
    writeOutput({
      'level': 'success',
      'message': 'Seeded ${run.name} in ${run.ms}ms',
    });
  }
}