Repository: ignite Updated Branches: refs/heads/master b20608557 -> a1b1f6c94
IGNITE-6647 Web Console: Support recreate index in migrations. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a1b1f6c9 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a1b1f6c9 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a1b1f6c9 Branch: refs/heads/master Commit: a1b1f6c94778dc5277276a46500baa93c3beaad7 Parents: b206085 Author: Alexey Kuznetsov <[email protected]> Authored: Thu Dec 28 17:07:58 2017 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Fri Dec 29 10:23:30 2017 +0700 ---------------------------------------------------------------------- modules/web-console/backend/index.js | 6 ++-- .../backend/migrations/recreate-index.js | 30 ++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b1f6c9/modules/web-console/backend/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/backend/index.js b/modules/web-console/backend/index.js index 266fa54..013de47 100644 --- a/modules/web-console/backend/index.js +++ b/modules/web-console/backend/index.js @@ -106,11 +106,13 @@ const init = ([settings, apiSrv, agentsHnd, browsersHnd]) => { * @param dbConnectionUri Mongo connection url. * @param group Migrations group. * @param migrationsPath Migrations path. + * @param collectionName Name of collection where migrations write info about applied scripts. */ -const migrate = (dbConnectionUri, group, migrationsPath) => { +const migrate = (dbConnectionUri, group, migrationsPath, collectionName) => { const migrator = new MigrateMongoose({ migrationsPath, dbConnectionUri, + collectionName, autosync: true }); @@ -144,7 +146,7 @@ injector.log.debug = () => {}; Promise.all([injector('settings'), injector('mongo')]) .then(([{mongoUrl}]) => { return migrate(mongoUrl, 'Ignite', path.join(__dirname, 'migrations')) - .then(() => migrate(mongoUrl, 'Ignite Modules', path.join(igniteModules, 'migrations'))); + .then(() => migrate(mongoUrl, 'Ignite Modules', path.join(igniteModules, 'migrations'), 'migrationsModules')); }) .then(() => Promise.all([injector('settings'), injector('api-server'), injector('agents-handler'), injector('browsers-handler')])) .then(init) http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b1f6c9/modules/web-console/backend/migrations/recreate-index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/backend/migrations/recreate-index.js b/modules/web-console/backend/migrations/recreate-index.js new file mode 100644 index 0000000..328ed43 --- /dev/null +++ b/modules/web-console/backend/migrations/recreate-index.js @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +module.exports = function(done, model, oldIdxName, oldIdx, newIdx) { + model.indexExists(oldIdxName) + .then((exists) => { + if (exists) { + return model.dropIndex(oldIdx) + .then(() => model.createIndex(newIdx, {unique: true})); + } + }) + .then(() => done()) + .catch(done); +};
