|
|
@@ -0,0 +1,51 @@
|
|
|
+/* 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,
|
|
|
+}
|