adapter.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const Path = require('path')
  2. const {
  3. addCollection,
  4. waitForDb,
  5. db,
  6. } = require('../../app/src/infrastructure/mongodb')
  7. class Adapter {
  8. constructor(params) {
  9. if (!(process.argv.includes('-t') || process.argv.includes('--tags'))) {
  10. console.error("ERROR: must pass tags using '-t' or '--tags', exiting")
  11. process.exit(1)
  12. }
  13. this.params = params || {}
  14. }
  15. getTemplatePath() {
  16. return Path.resolve(__dirname, 'template.js')
  17. }
  18. async connect() {
  19. await waitForDb()
  20. await addCollection('projectImportFailures')
  21. await addCollection('samllog')
  22. await addCollection('user')
  23. return { db }
  24. }
  25. disconnect() {
  26. return Promise.resolve()
  27. }
  28. async getExecutedMigrationNames() {
  29. const migrations = await db.migrations
  30. .find({}, { sort: { migratedAt: 1 }, projection: { name: 1 } })
  31. .toArray()
  32. return migrations.map(migration => migration.name)
  33. }
  34. async markExecuted(name) {
  35. return db.migrations.insertOne({
  36. name: name,
  37. migratedAt: new Date(),
  38. })
  39. }
  40. async unmarkExecuted(name) {
  41. return db.migrations.deleteOne({
  42. name: name,
  43. })
  44. }
  45. }
  46. module.exports = Adapter