migrator-source.js 726 B

123456789101112131415161718192021222324252627
  1. const path = require('path')
  2. const fs = require('fs-extra')
  3. const semver = require('semver')
  4. const baseMigrationPath = path.join(WIKI.SERVERPATH, 'db/migrations')
  5. module.exports = {
  6. /**
  7. * Gets the migration names
  8. * @returns Promise<string[]>
  9. */
  10. async getMigrations() {
  11. const migrationFiles = await fs.readdir(baseMigrationPath)
  12. return migrationFiles.map(m => m.replace('.js', '')).sort(semver.compare).map(m => ({
  13. file: m,
  14. directory: baseMigrationPath
  15. }))
  16. },
  17. getMigrationName(migration) {
  18. return migration.file.indexOf('.js') >= 0 ? migration.file : `${migration.file}.js`
  19. },
  20. getMigration(migration) {
  21. return require(path.join(baseMigrationPath, migration.file))
  22. }
  23. }