| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /* eslint-disable no-unused-vars */
- import { batchedUpdate } from '@overleaf/mongo-utils/batchedUpdate.js'
- const tags = ['saas']
- const migrate = async client => {
- const { db } = client
- // Set aiFeatures.enabled to false where writefull.enabled is false
- await batchedUpdate(
- db.users,
- {
- 'writefull.enabled': false,
- // dont re-set in cases where we already set aiFeatures, ie: by running the script
- 'aiFeatures.enabled': { $exists: false },
- },
- { $set: { 'aiFeatures.enabled': false } }
- )
- // Set aiFeatures.enabled to true for all other cases (true, null, or not exists)
- await batchedUpdate(
- db.users,
- {
- 'writefull.enabled': { $ne: false },
- // dont re-set in cases where we already set aiFeatures, ie: by running the script
- 'aiFeatures.enabled': { $exists: false },
- },
- { $set: { 'aiFeatures.enabled': true } }
- )
- console.log(
- 'completed syncing rename of aiErrorAssist.enabled to aiFeatures.enabled'
- )
- }
- const rollback = async client => {
- const { db } = client
- // unset the user.writefull.initialized value only if its been set
- await batchedUpdate(
- db.users,
- { 'aiFeatures.enabled': { $exists: true } },
- { $unset: { 'aiFeatures.enabled': 1 } }
- )
- console.log('completed rollback of aiFeatures.enabled migration')
- }
- export default {
- tags,
- migrate,
- rollback,
- }
|