20200120163346_atlas_recommended_indexes.js 838 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* eslint-disable no-unused-vars */
  2. const Helpers = require('./lib/helpers')
  3. exports.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. exports.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. exports.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. }