20231101191643_drop_unused_indexes.mjs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import Helpers from './lib/helpers.mjs'
  2. const tags = ['server-ce', 'server-pro', 'saas']
  3. const PROJECTS_INDEXES = [
  4. {
  5. name: 'publicAccesLevel_1',
  6. key: { publicAccesLevel: 1 },
  7. },
  8. {
  9. name: 'name_1',
  10. key: { name: 1 },
  11. },
  12. {
  13. name: 'brandVariationId_1',
  14. key: { brandVariationId: 1 },
  15. },
  16. ]
  17. const DOC_SNAPSHOTS_INDEXES = [
  18. {
  19. name: 'project_id_1',
  20. key: { project_id: 1 },
  21. },
  22. ]
  23. const USERS_INDEXES = [
  24. {
  25. name: 'owner_ref',
  26. key: { owner_ref: 1 },
  27. },
  28. {
  29. name: 'has dropbox',
  30. key: { 'dropbox.access_token.oauth_token_secret': 1 },
  31. },
  32. {
  33. name: 'holdingAccount_1',
  34. key: { holdingAccount: 1 },
  35. },
  36. {
  37. name: 'subscription.freeTrialDowngraded_1',
  38. key: { 'subscription.freeTrialDowngraded': 1 },
  39. },
  40. {
  41. name: 'password_and_email',
  42. key: { password: 1, email: 1 },
  43. },
  44. {
  45. name: 'subscription.freeTrialExpiresAt_1',
  46. key: { 'subscription.freeTrialExpiresAt': 1 },
  47. },
  48. {
  49. name: 'auth_token_1',
  50. key: { auth_token: 1 },
  51. },
  52. ]
  53. const migrate = async client => {
  54. const { db } = client
  55. await Helpers.dropIndexesFromCollection(db.projects, PROJECTS_INDEXES)
  56. await Helpers.dropIndexesFromCollection(
  57. db.docSnapshots,
  58. DOC_SNAPSHOTS_INDEXES
  59. )
  60. await Helpers.dropIndexesFromCollection(db.users, USERS_INDEXES)
  61. }
  62. const rollback = async client => {
  63. const { db } = client
  64. await Helpers.addIndexesToCollection(db.projects, PROJECTS_INDEXES)
  65. await Helpers.addIndexesToCollection(db.docSnapshots, DOC_SNAPSHOTS_INDEXES)
  66. await Helpers.addIndexesToCollection(db.users, USERS_INDEXES)
  67. }
  68. export default {
  69. tags,
  70. migrate,
  71. rollback,
  72. }