diff --git a/README.md b/README.md index 5e77970..484fff7 100644 --- a/README.md +++ b/README.md @@ -42,11 +42,11 @@ The usage is based on the node-db-migrate project. - `dataSource` - [String] : Datasource to connect the Migration and MigrationMap models to. *(default: db)* + [String] : Datasource to connect the Migration model to. *(default: db)* - `acls` - [Array] : ACLs to apply to Migration and MigrationMap models. *(default: [])* + [Array] : ACLs to apply to Migration model. *(default: [])* ## Running Migrations diff --git a/lib/index.js b/lib/index.js index 12760db..1287ff4 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,7 +1,6 @@ var debug = require('debug')('loopback-component-migrate'); var loopback = require('loopback'); var migrationDef = require('./models/migration.json'); -var migrationMapDef = require('./models/migration-map.json'); // Remove proerties that will confuse LB function getSettings(def) { @@ -30,12 +29,11 @@ module.exports = function(app, options) { } var migrationModelSettings = getSettings(migrationDef); - var migrationMapModelSettings = getSettings(migrationMapDef); if (typeof options.acls !== 'object') { - migrationModelSettings.acls = migrationMapModelSettings.acls = []; + migrationModelSettings.acls = []; } else { - migrationModelSettings.acls = migrationMapModelSettings.acls = options.acls; + migrationModelSettings.acls = options.acls; } // Support for loopback 2.x. @@ -51,27 +49,10 @@ module.exports = function(app, options) { migrationDef.properties, migrationModelSettings); - debug('Creating MigrationMap model using settings: %o', migrationModelSettings); - var MigrationMapModel = dataSource.createModel( - migrationMapDef.name, - migrationMapDef.properties, - migrationMapModelSettings); - var Migration = require('./models/migration')(MigrationModel, options); - var MigrationMap = require('./models/migration-map')(MigrationMapModel, options); - - app.model(Migration); - app.model(MigrationMap); - if (!options.enableRest) { - if (Migration.disableRemoteMethodByName) { - // Loopback 3.x+ - Migration.disableRemoteMethodByName('migrateTo'); - Migration.disableRemoteMethodByName('rollbackTo'); - } else { - // Loopback 2.x - Migration.disableRemoteMethod('migrateTo', true); - Migration.disableRemoteMethod('rollbackTo', true); - } - } + app.model(Migration, { + public: !!options.enableRest, + dataSource: dataSource + }); }; diff --git a/lib/models/migration-map.js b/lib/models/migration-map.js deleted file mode 100644 index aa91860..0000000 --- a/lib/models/migration-map.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function(MigrationMap) { - return MigrationMap; -}; diff --git a/lib/models/migration-map.json b/lib/models/migration-map.json deleted file mode 100644 index 8dfeb4f..0000000 --- a/lib/models/migration-map.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "MigrationMap", - "plural": "MigrationMaps", - "base": "PersistedModel", - "description": "Migration Mappings.", - "properties": { - "type": { - "type": "String", - "comments": "Mapping type.", - "required": true - }, - "from": { - "type": "String", - "comments": "Source Id.", - "required": true - }, - "to": { - "type": "String", - "comments": "Target Id.", - "required": true - }, - "data": { - "type": "Object", - "comments": "Additional data." - } - }, - "indexes": { - "type_from_index": { - "keys": { - "type": 1, - "from": 1 - } - } - } -} diff --git a/lib/models/migration.json b/lib/models/migration.json index bcb9524..5cb0187 100644 --- a/lib/models/migration.json +++ b/lib/models/migration.json @@ -17,7 +17,14 @@ }, "indexes": { "name_index": { - "name": 1 + "keys": { + "name": 1 + }, + "options": { + "unique": true + }, + "columns": "name", + "kind": "unique" } }, "methods": { diff --git a/test/test.js b/test/test.js index a7630ef..17424ae 100644 --- a/test/test.js +++ b/test/test.js @@ -26,9 +26,6 @@ describe('loopback db migrate', function() { expect(app.models.Migration).to.exist; expect(app.models.Migration).itself.to.respondTo('migrate'); }); - it('should attach a MigrationMap model to the app', function() { - expect(app.models.Migration).to.exist; - }); it('should provide a Migration.migrate() method', function() { expect(app.models.Migration).itself.to.respondTo('migrate'); });