20250411200550_active_chunk_index_update.mjs 952 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import Helpers from './lib/helpers.mjs'
  2. const tags = ['server-ce', 'server-pro', 'saas']
  3. const oldIndex = {
  4. name: 'projectId_1_startVersion_1',
  5. key: {
  6. projectId: 1,
  7. startVersion: 1,
  8. },
  9. unique: true,
  10. partialFilterExpression: { state: 'active' },
  11. }
  12. const newIndex = {
  13. name: 'projectId_1_startVersion_1_v2',
  14. key: {
  15. projectId: 1,
  16. startVersion: 1,
  17. },
  18. unique: true,
  19. partialFilterExpression: { state: { $in: ['active', 'closed'] } },
  20. }
  21. const migrate = async client => {
  22. const { db } = client
  23. await Helpers.addIndexesToCollection(db.projectHistoryChunks, [newIndex])
  24. await Helpers.dropIndexesFromCollection(db.projectHistoryChunks, [oldIndex])
  25. }
  26. const rollback = async client => {
  27. const { db } = client
  28. await Helpers.addIndexesToCollection(db.projectHistoryChunks, [oldIndex])
  29. await Helpers.dropIndexesFromCollection(db.projectHistoryChunks, [newIndex])
  30. }
  31. export default {
  32. tags,
  33. migrate,
  34. rollback,
  35. }