seed_one.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. var _process = _interopRequireDefault(require("process"));
  3. var _yargs = require("../core/yargs");
  4. var _migrator = require("../core/migrator");
  5. var _helpers = _interopRequireDefault(require("../helpers"));
  6. var _path = _interopRequireDefault(require("path"));
  7. var _lodash = _interopRequireDefault(require("lodash"));
  8. function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
  9. exports.builder = yargs => (0, _yargs._baseOptions)(yargs).option('seed', {
  10. describe: 'List of seed files',
  11. type: 'array'
  12. }).argv;
  13. exports.handler = async function (args) {
  14. const command = args._[0];
  15. // legacy, gulp used to do this
  16. await _helpers.default.config.init();
  17. switch (command) {
  18. case 'db:seed':
  19. try {
  20. const migrator = await (0, _migrator.getMigrator)('seeder', args);
  21. // filter out cmd names
  22. // for case like --seeders-path seeders --seed seedPerson.js db:seed
  23. const seeds = (args.seed || []).filter(name => name !== 'db:seed' && name !== 'db:seed:undo').map(file => _path.default.basename(file));
  24. await migrator.up(seeds);
  25. } catch (e) {
  26. _helpers.default.view.error(e);
  27. }
  28. break;
  29. case 'db:seed:undo':
  30. try {
  31. const migrator = await (0, _migrator.getMigrator)('seeder', args);
  32. let seeders = _helpers.default.umzug.getStorage('seeder') === 'none' ? await migrator.pending() : await migrator.executed();
  33. if (args.seed) {
  34. seeders = seeders.filter(seed => {
  35. return args.seed.includes(seed.file);
  36. });
  37. }
  38. if (seeders.length === 0) {
  39. _helpers.default.view.log('No seeders found.');
  40. return;
  41. }
  42. if (!args.seed) {
  43. seeders = seeders.slice(-1);
  44. }
  45. await migrator.down({
  46. migrations: _lodash.default.chain(seeders).map('file').reverse().value()
  47. });
  48. } catch (e) {
  49. _helpers.default.view.error(e);
  50. }
  51. break;
  52. }
  53. _process.default.exit(0);
  54. };