From cd3c33d98bae42ab169b451c31748ceecf5aa7d2 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Tue, 9 Sep 2025 14:37:30 +0530 Subject: [PATCH 01/11] feat: dropUnknownIndexes --- spec/DefinedSchemas.spec.js | 25 ++++++++++++++++++++++++- src/Options/index.js | 3 +++ src/SchemaMigrations/DefinedSchemas.js | 11 +++++++++-- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index e3d6fd51fe..ba9784f3df 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -371,7 +371,7 @@ describe('DefinedSchemas', () => { expect(schema.indexes).toEqual(indexes); }); - it('should delete removed indexes', async () => { + it('should delete removed indexes when dropUnknownIndexes is set to false', async () => { const server = await reconfigureServer(); let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; @@ -393,6 +393,29 @@ describe('DefinedSchemas', () => { cleanUpIndexes(schema); expect(schema.indexes).toBeUndefined(); }); + + it('should not delete removed indexes when dropUnknownIndexes is set to true', async () => { + const server = await reconfigureServer(); + + let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; + + let schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: false }; + await new DefinedSchemas(schemas, server.config).execute(); + + indexes = {}; + schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: false }; + + // Change indexes + await new DefinedSchemas(schemas, server.config).execute(); + let schema = await new Parse.Schema('Test').get(); + expect(schema.indexes).not.toBeUndefined(); + + // Update + await new DefinedSchemas(schemas, server.config).execute(); + schema = await new Parse.Schema('Test').get(); + expect(schema.indexes).not.toBeUndefined(); + }); + xit('should keep protected indexes', async () => { const server = await reconfigureServer(); diff --git a/src/Options/index.js b/src/Options/index.js index 40e15afb27..97cade106e 100644 --- a/src/Options/index.js +++ b/src/Options/index.js @@ -25,6 +25,9 @@ export interface SchemaOptions { /* Is true if Parse Server will reject any attempts to modify the schema while the server is running. :DEFAULT: false */ lockSchemas: ?boolean; + /* Drops indexes that are not defined in the schema and are present in the database. Set this false if you are adding indexes manually so that it wont be dropped when you run schema migration + :DEFAULT: true */ + dropUnknownIndexes: ?boolean; /* Execute a callback before running schema migrations. */ beforeMigration: ?() => void | Promise; /* Execute a callback after running schema migrations. */ diff --git a/src/SchemaMigrations/DefinedSchemas.js b/src/SchemaMigrations/DefinedSchemas.js index e9c685797c..c809902b93 100644 --- a/src/SchemaMigrations/DefinedSchemas.js +++ b/src/SchemaMigrations/DefinedSchemas.js @@ -344,16 +344,23 @@ export class DefinedSchemas { const indexesToAdd = []; + // Only delete indexes which are present in database if dropUnknownIndexes is `true` // Check deletion if (cloudSchema.indexes) { Object.keys(cloudSchema.indexes).forEach(indexName => { if (!this.isProtectedIndex(localSchema.className, indexName)) { if (!localSchema.indexes || !localSchema.indexes[indexName]) { - newLocalSchema.deleteIndex(indexName); + // Only delete indexes which are present in database if dropUnknownIndexes is `true` + if(this.config.schema.dropUnknownIndexes){ + newLocalSchema.deleteIndex(indexName); + } } else if ( !this.paramsAreEquals(localSchema.indexes[indexName], cloudSchema.indexes[indexName]) ) { - newLocalSchema.deleteIndex(indexName); + // Only delete indexes which are present in database if dropUnknownIndexes is `true` + if(this.config.schema.dropUnknownIndexes){ + newLocalSchema.deleteIndex(indexName); + } if (localSchema.indexes) { indexesToAdd.push({ indexName, From 847b51cce8d2834d28c5443c92942a88d65540e8 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Tue, 9 Sep 2025 14:42:30 +0530 Subject: [PATCH 02/11] fix: minor fix --- src/SchemaMigrations/DefinedSchemas.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/SchemaMigrations/DefinedSchemas.js b/src/SchemaMigrations/DefinedSchemas.js index c809902b93..cf5a6de348 100644 --- a/src/SchemaMigrations/DefinedSchemas.js +++ b/src/SchemaMigrations/DefinedSchemas.js @@ -344,7 +344,6 @@ export class DefinedSchemas { const indexesToAdd = []; - // Only delete indexes which are present in database if dropUnknownIndexes is `true` // Check deletion if (cloudSchema.indexes) { Object.keys(cloudSchema.indexes).forEach(indexName => { From de436f096a9ba8c8be89d34e8615008785c4d527 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Tue, 9 Sep 2025 14:46:36 +0530 Subject: [PATCH 03/11] fix: ran definitions --- src/Options/Definitions.js | 7 +++++++ src/Options/docs.js | 1 + 2 files changed, 8 insertions(+) diff --git a/src/Options/Definitions.js b/src/Options/Definitions.js index a1da6c09a7..b155e05653 100644 --- a/src/Options/Definitions.js +++ b/src/Options/Definitions.js @@ -28,6 +28,13 @@ module.exports.SchemaOptions = { action: parsers.booleanParser, default: false, }, + dropUnknownIndexes: { + env: 'PARSE_SERVER_SCHEMA_DROP_UNKNOWN_INDEXES', + help: + 'Drops indexes that are not defined in the schema and are present in the database. Set this false if you are adding indexes manually so that it wont be dropped when you run schema migration', + action: parsers.booleanParser, + default: true, + }, lockSchemas: { env: 'PARSE_SERVER_SCHEMA_LOCK_SCHEMAS', help: diff --git a/src/Options/docs.js b/src/Options/docs.js index 4c2883adaa..a9a71a3234 100644 --- a/src/Options/docs.js +++ b/src/Options/docs.js @@ -4,6 +4,7 @@ * @property {Function} beforeMigration Execute a callback before running schema migrations. * @property {Any} definitions Rest representation on Parse.Schema https://docs.parseplatform.org/rest/guide/#adding-a-schema * @property {Boolean} deleteExtraFields Is true if Parse Server should delete any fields not defined in a schema definition. This should only be used during development. + * @property {Boolean} dropUnknownIndexes Drops indexes that are not defined in the schema and are present in the database. Set this false if you are adding indexes manually so that it wont be dropped when you run schema migration * @property {Boolean} lockSchemas Is true if Parse Server will reject any attempts to modify the schema while the server is running. * @property {Boolean} recreateModifiedFields Is true if Parse Server should recreate any fields that are different between the current database schema and theschema definition. This should only be used during development. * @property {Boolean} strict Is true if Parse Server should exit if schema update fail. From bc24d94ee0203a182bc1639865f5f0680aa42a60 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Tue, 9 Sep 2025 20:21:35 +0530 Subject: [PATCH 04/11] fix: may fix --- spec/DefinedSchemas.spec.js | 2 +- src/SchemaMigrations/DefinedSchemas.js | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index ba9784f3df..3b433d8270 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -370,7 +370,7 @@ describe('DefinedSchemas', () => { cleanUpIndexes(schema); expect(schema.indexes).toEqual(indexes); }); - + it('should delete removed indexes when dropUnknownIndexes is set to false', async () => { const server = await reconfigureServer(); diff --git a/src/SchemaMigrations/DefinedSchemas.js b/src/SchemaMigrations/DefinedSchemas.js index cf5a6de348..f73c7b670e 100644 --- a/src/SchemaMigrations/DefinedSchemas.js +++ b/src/SchemaMigrations/DefinedSchemas.js @@ -350,16 +350,13 @@ export class DefinedSchemas { if (!this.isProtectedIndex(localSchema.className, indexName)) { if (!localSchema.indexes || !localSchema.indexes[indexName]) { // Only delete indexes which are present in database if dropUnknownIndexes is `true` - if(this.config.schema.dropUnknownIndexes){ + if(this.schemaOptions.dropUnknownIndexes !== false){ newLocalSchema.deleteIndex(indexName); } } else if ( !this.paramsAreEquals(localSchema.indexes[indexName], cloudSchema.indexes[indexName]) ) { - // Only delete indexes which are present in database if dropUnknownIndexes is `true` - if(this.config.schema.dropUnknownIndexes){ - newLocalSchema.deleteIndex(indexName); - } + newLocalSchema.deleteIndex(indexName); if (localSchema.indexes) { indexesToAdd.push({ indexName, From 2874618dc2ab5e0e0e1370c32d59b4f555fe8016 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Tue, 9 Sep 2025 20:22:46 +0530 Subject: [PATCH 05/11] fix: minor --- spec/DefinedSchemas.spec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index 3b433d8270..6d8d7256a7 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -408,11 +408,13 @@ describe('DefinedSchemas', () => { // Change indexes await new DefinedSchemas(schemas, server.config).execute(); let schema = await new Parse.Schema('Test').get(); + cleanUpIndexes(schema); expect(schema.indexes).not.toBeUndefined(); // Update await new DefinedSchemas(schemas, server.config).execute(); schema = await new Parse.Schema('Test').get(); + cleanUpIndexes(schema); expect(schema.indexes).not.toBeUndefined(); }); From 27f2eb8bcbed67650769168018099a6b610d890f Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Tue, 9 Sep 2025 20:25:30 +0530 Subject: [PATCH 06/11] fix: minor --- src/SchemaMigrations/Migrations.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SchemaMigrations/Migrations.js b/src/SchemaMigrations/Migrations.js index 8768911189..dffdec500a 100644 --- a/src/SchemaMigrations/Migrations.js +++ b/src/SchemaMigrations/Migrations.js @@ -6,6 +6,7 @@ export interface SchemaOptions { deleteExtraFields: ?boolean; recreateModifiedFields: ?boolean; lockSchemas: ?boolean; + dropUnknownIndexes: ?boolean; beforeMigration: ?() => void | Promise; afterMigration: ?() => void | Promise; } From 99d820deb83a6bdf810ae4c500cb3c64723aae2d Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Tue, 9 Sep 2025 20:27:40 +0530 Subject: [PATCH 07/11] fix: linter --- spec/DefinedSchemas.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index 6d8d7256a7..b28245764b 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -370,7 +370,7 @@ describe('DefinedSchemas', () => { cleanUpIndexes(schema); expect(schema.indexes).toEqual(indexes); }); - + it('should delete removed indexes when dropUnknownIndexes is set to false', async () => { const server = await reconfigureServer(); From b410ea20cd8502d60bae194b4ba8cf7a0883c397 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Wed, 10 Sep 2025 09:39:23 +0530 Subject: [PATCH 08/11] fix: minor fix --- spec/DefinedSchemas.spec.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index b28245764b..0b3e8804fb 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -371,7 +371,7 @@ describe('DefinedSchemas', () => { expect(schema.indexes).toEqual(indexes); }); - it('should delete removed indexes when dropUnknownIndexes is set to false', async () => { + it('should delete unknown indexes when dropUnknownIndexes is not set', async () => { const server = await reconfigureServer(); let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; @@ -394,7 +394,30 @@ describe('DefinedSchemas', () => { expect(schema.indexes).toBeUndefined(); }); - it('should not delete removed indexes when dropUnknownIndexes is set to true', async () => { + it('should delete unknown indexes when dropUnknownIndexes is set to true', async () => { + const server = await reconfigureServer(); + + let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; + + let schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: true }; + await new DefinedSchemas(schemas, server.config).execute(); + + indexes = {}; + schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: true }; + // Change indexes + await new DefinedSchemas(schemas, server.config).execute(); + let schema = await new Parse.Schema('Test').get(); + cleanUpIndexes(schema); + expect(schema.indexes).toBeUndefined(); + + // Update + await new DefinedSchemas(schemas, server.config).execute(); + schema = await new Parse.Schema('Test').get(); + cleanUpIndexes(schema); + expect(schema.indexes).toBeUndefined(); + }); + + it('should not delete unknown indexes when dropUnknownIndexes is set to false', async () => { const server = await reconfigureServer(); let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; From 88187e5dd8020e87f6af4b604c1aed278821a318 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Wed, 10 Sep 2025 10:33:50 +0530 Subject: [PATCH 09/11] fix: remove weak assertions --- spec/DefinedSchemas.spec.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index 0b3e8804fb..60d4943460 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -420,25 +420,24 @@ describe('DefinedSchemas', () => { it('should not delete unknown indexes when dropUnknownIndexes is set to false', async () => { const server = await reconfigureServer(); - let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; + const indexes = { complex: { createdAt: 1, updatedAt: 1 } }; let schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: false }; await new DefinedSchemas(schemas, server.config).execute(); - indexes = {}; - schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: false }; + schemas = { definitions: [{ className: 'Test', indexes: {} }], dropUnknownIndexes: false }; // Change indexes await new DefinedSchemas(schemas, server.config).execute(); let schema = await new Parse.Schema('Test').get(); cleanUpIndexes(schema); - expect(schema.indexes).not.toBeUndefined(); + expect(schema.indexes).toEqual({ complex: { createdAt: 1, updatedAt: 1 } }); // Update await new DefinedSchemas(schemas, server.config).execute(); schema = await new Parse.Schema('Test').get(); cleanUpIndexes(schema); - expect(schema.indexes).not.toBeUndefined(); + expect(schema.indexes).toEqual(indexes); }); xit('should keep protected indexes', async () => { From 502fa811770b673a9aa8a92cdb3d3aa798e275b8 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Wed, 10 Sep 2025 10:34:51 +0530 Subject: [PATCH 10/11] fix: remove extra trailing space --- spec/DefinedSchemas.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index 60d4943460..4f3d1b4dca 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -425,7 +425,7 @@ describe('DefinedSchemas', () => { let schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: false }; await new DefinedSchemas(schemas, server.config).execute(); - schemas = { definitions: [{ className: 'Test', indexes: {} }], dropUnknownIndexes: false }; + schemas = { definitions: [{ className: 'Test', indexes: {} }], dropUnknownIndexes: false }; // Change indexes await new DefinedSchemas(schemas, server.config).execute(); From 3a46221826e786a8155dd964c9a7534e46c927e3 Mon Sep 17 00:00:00 2001 From: Rahul Lanjewar Date: Wed, 10 Sep 2025 21:20:31 +0530 Subject: [PATCH 11/11] fix: suggested changes --- spec/DefinedSchemas.spec.js | 14 +++++++------- src/Options/Definitions.js | 8 ++++---- src/Options/docs.js | 2 +- src/Options/index.js | 6 +++--- src/SchemaMigrations/DefinedSchemas.js | 4 ++-- src/SchemaMigrations/Migrations.js | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/spec/DefinedSchemas.spec.js b/spec/DefinedSchemas.spec.js index 4f3d1b4dca..b2cae864c1 100644 --- a/spec/DefinedSchemas.spec.js +++ b/spec/DefinedSchemas.spec.js @@ -371,7 +371,7 @@ describe('DefinedSchemas', () => { expect(schema.indexes).toEqual(indexes); }); - it('should delete unknown indexes when dropUnknownIndexes is not set', async () => { + it('should delete unknown indexes when keepUnknownIndexes is not set', async () => { const server = await reconfigureServer(); let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; @@ -394,16 +394,16 @@ describe('DefinedSchemas', () => { expect(schema.indexes).toBeUndefined(); }); - it('should delete unknown indexes when dropUnknownIndexes is set to true', async () => { + it('should delete unknown indexes when keepUnknownIndexes is set to false', async () => { const server = await reconfigureServer(); let indexes = { complex: { createdAt: 1, updatedAt: 1 } }; - let schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: true }; + let schemas = { definitions: [{ className: 'Test', indexes }], keepUnknownIndexes: false }; await new DefinedSchemas(schemas, server.config).execute(); indexes = {}; - schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: true }; + schemas = { definitions: [{ className: 'Test', indexes }], keepUnknownIndexes: false }; // Change indexes await new DefinedSchemas(schemas, server.config).execute(); let schema = await new Parse.Schema('Test').get(); @@ -417,15 +417,15 @@ describe('DefinedSchemas', () => { expect(schema.indexes).toBeUndefined(); }); - it('should not delete unknown indexes when dropUnknownIndexes is set to false', async () => { + it('should not delete unknown indexes when keepUnknownIndexes is set to true', async () => { const server = await reconfigureServer(); const indexes = { complex: { createdAt: 1, updatedAt: 1 } }; - let schemas = { definitions: [{ className: 'Test', indexes }], dropUnknownIndexes: false }; + let schemas = { definitions: [{ className: 'Test', indexes }], keepUnknownIndexes: true }; await new DefinedSchemas(schemas, server.config).execute(); - schemas = { definitions: [{ className: 'Test', indexes: {} }], dropUnknownIndexes: false }; + schemas = { definitions: [{ className: 'Test', indexes: {} }], keepUnknownIndexes: true }; // Change indexes await new DefinedSchemas(schemas, server.config).execute(); diff --git a/src/Options/Definitions.js b/src/Options/Definitions.js index 58bdea80ee..b136d82f0a 100644 --- a/src/Options/Definitions.js +++ b/src/Options/Definitions.js @@ -28,12 +28,12 @@ module.exports.SchemaOptions = { action: parsers.booleanParser, default: false, }, - dropUnknownIndexes: { - env: 'PARSE_SERVER_SCHEMA_DROP_UNKNOWN_INDEXES', + keepUnknownIndexes: { + env: 'PARSE_SERVER_SCHEMA_KEEP_UNKNOWN_INDEXES', help: - 'Drops indexes that are not defined in the schema and are present in the database. Set this false if you are adding indexes manually so that it wont be dropped when you run schema migration', + 'Keep indexes that are not defined in the schema and are present in the database. Set this to true if you are adding indexes manually so that it wont be dropped when you run schema migration', action: parsers.booleanParser, - default: true, + default: false, }, lockSchemas: { env: 'PARSE_SERVER_SCHEMA_LOCK_SCHEMAS', diff --git a/src/Options/docs.js b/src/Options/docs.js index aaf2c4b251..366eee31ab 100644 --- a/src/Options/docs.js +++ b/src/Options/docs.js @@ -4,7 +4,7 @@ * @property {Function} beforeMigration Execute a callback before running schema migrations. * @property {Any} definitions Rest representation on Parse.Schema https://docs.parseplatform.org/rest/guide/#adding-a-schema * @property {Boolean} deleteExtraFields Is true if Parse Server should delete any fields not defined in a schema definition. This should only be used during development. - * @property {Boolean} dropUnknownIndexes Drops indexes that are not defined in the schema and are present in the database. Set this false if you are adding indexes manually so that it wont be dropped when you run schema migration + * @property {Boolean} keepUnknownIndexes Keep indexes that are not defined in the schema and are present in the database. Set this to true if you are adding indexes manually so that it wont be dropped when you run schema migration * @property {Boolean} lockSchemas Is true if Parse Server will reject any attempts to modify the schema while the server is running. * @property {Boolean} recreateModifiedFields Is true if Parse Server should recreate any fields that are different between the current database schema and theschema definition. This should only be used during development. * @property {Boolean} strict Is true if Parse Server should exit if schema update fail. diff --git a/src/Options/index.js b/src/Options/index.js index dde586164d..5004ca0ee7 100644 --- a/src/Options/index.js +++ b/src/Options/index.js @@ -25,9 +25,9 @@ export interface SchemaOptions { /* Is true if Parse Server will reject any attempts to modify the schema while the server is running. :DEFAULT: false */ lockSchemas: ?boolean; - /* Drops indexes that are not defined in the schema and are present in the database. Set this false if you are adding indexes manually so that it wont be dropped when you run schema migration - :DEFAULT: true */ - dropUnknownIndexes: ?boolean; + /* Keep indexes that are not defined in the schema and are present in the database. Set this to true if you are adding indexes manually so that it wont be dropped when you run schema migration + :DEFAULT: false */ + keepUnknownIndexes: ?boolean; /* Execute a callback before running schema migrations. */ beforeMigration: ?() => void | Promise; /* Execute a callback after running schema migrations. */ diff --git a/src/SchemaMigrations/DefinedSchemas.js b/src/SchemaMigrations/DefinedSchemas.js index ebc889a3f2..0a94a5e4ad 100644 --- a/src/SchemaMigrations/DefinedSchemas.js +++ b/src/SchemaMigrations/DefinedSchemas.js @@ -349,8 +349,8 @@ export class DefinedSchemas { Object.keys(cloudSchema.indexes).forEach(indexName => { if (!this.isProtectedIndex(localSchema.className, indexName)) { if (!localSchema.indexes || !localSchema.indexes[indexName]) { - // Only delete indexes which are present in database if dropUnknownIndexes is `true` - if(this.schemaOptions.dropUnknownIndexes !== false){ + // If keepUnknownIndex is falsy, then delete all unknown indexes from the db. + if(!this.schemaOptions.keepUnknownIndexes){ newLocalSchema.deleteIndex(indexName); } } else if ( diff --git a/src/SchemaMigrations/Migrations.js b/src/SchemaMigrations/Migrations.js index dffdec500a..23499bdba7 100644 --- a/src/SchemaMigrations/Migrations.js +++ b/src/SchemaMigrations/Migrations.js @@ -6,7 +6,7 @@ export interface SchemaOptions { deleteExtraFields: ?boolean; recreateModifiedFields: ?boolean; lockSchemas: ?boolean; - dropUnknownIndexes: ?boolean; + keepUnknownIndexes: ?boolean; beforeMigration: ?() => void | Promise; afterMigration: ?() => void | Promise; }