20250126195914_update_deleterData.deletedAt_index.mjs 969 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* eslint-disable no-unused-vars */
  2. import Helpers from './lib/helpers.mjs'
  3. const tags = ['server-ce', 'server-pro', 'saas']
  4. const oldIndex = {
  5. key: {
  6. 'deleterData.deletedAt': 1,
  7. },
  8. name: 'deleterData.deletedAt_1',
  9. }
  10. const newIndex = {
  11. key: {
  12. 'deleterData.deletedAt': 1,
  13. },
  14. name: 'deleterData.deletedAt_1',
  15. partialFilterExpression: { project: { $type: 'object' } },
  16. }
  17. const migrate = async client => {
  18. const { db } = client
  19. await Helpers.dropIndexesFromCollection(db.deletedProjects, [oldIndex])
  20. await Helpers.addIndexesToCollection(db.deletedProjects, [newIndex])
  21. }
  22. const rollback = async client => {
  23. const { db } = client
  24. try {
  25. await Helpers.dropIndexesFromCollection(db.deletedProjects, [newIndex])
  26. await Helpers.addIndexesToCollection(db.deletedProjects, [oldIndex])
  27. } catch (err) {
  28. console.error('Something went wrong rolling back the migrations', err)
  29. }
  30. }
  31. export default {
  32. tags,
  33. migrate,
  34. rollback,
  35. }