20231031164732_drop_redundant_indexes.mjs 1000 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* eslint-disable no-unused-vars */
  2. import Helpers from './lib/helpers.mjs'
  3. const tags = ['server-ce', 'server-pro', 'saas']
  4. const DOCS_INDEXES = [
  5. {
  6. key: { project_id: 1 },
  7. name: 'project_id_1',
  8. },
  9. ]
  10. const TAGS_INDEXES = [
  11. {
  12. key: { user_id: 1 },
  13. name: 'user_id_1',
  14. },
  15. ]
  16. const PROJECTS_INDEXES = [
  17. {
  18. key: { _id: 1, lastOpened: 1, active: 1 },
  19. name: '_id_1_lastOpened_1_active_1',
  20. partialFilterExpression: { active: true },
  21. },
  22. ]
  23. const migrate = async ({ db }) => {
  24. await Helpers.dropIndexesFromCollection(db.docs, DOCS_INDEXES)
  25. await Helpers.dropIndexesFromCollection(db.tags, TAGS_INDEXES)
  26. await Helpers.dropIndexesFromCollection(db.projects, PROJECTS_INDEXES)
  27. }
  28. const rollback = async ({ db }) => {
  29. await Helpers.addIndexesToCollection(db.docs, DOCS_INDEXES)
  30. await Helpers.addIndexesToCollection(db.tags, TAGS_INDEXES)
  31. await Helpers.addIndexesToCollection(db.projects, PROJECTS_INDEXES)
  32. }
  33. export default {
  34. tags,
  35. migrate,
  36. rollback,
  37. }