20200120163346_atlas_recommended_indexes.mjs 882 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* eslint-disable no-unused-vars */
  2. import Helpers from './lib/helpers.mjs'
  3. const tags = ['server-ce', 'server-pro', 'saas']
  4. const indexes = {
  5. docSnapshots: [{ key: { project_id: 1, ts: 1 }, name: 'project_id_1_ts_1' }],
  6. deletedProjects: [
  7. {
  8. key: { 'deleterData.deletedProjectOwnerId': 1 },
  9. name: 'deleterdata_deletedProjectOwnerId_1',
  10. },
  11. ],
  12. docs: [{ key: { project_id: 1, inS3: 1 }, name: 'project_id_1_inS3_1' }],
  13. }
  14. const migrate = async client => {
  15. const { db } = client
  16. await Promise.all(
  17. Object.keys(indexes).map(key =>
  18. Helpers.addIndexesToCollection(db[key], indexes[key])
  19. )
  20. )
  21. }
  22. const rollback = async client => {
  23. const { db } = client
  24. await Promise.all(
  25. Object.keys(indexes).map(key =>
  26. Helpers.dropIndexesFromCollection(db[key], indexes[key])
  27. )
  28. )
  29. }
  30. export default {
  31. tags,
  32. migrate,
  33. rollback,
  34. }