├── .gitignore ├── .idea ├── .name ├── codeStyleSettings.xml ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── jsLibraryMappings.xml ├── libraries │ └── sails_db_migrate_node_modules.xml ├── misc.xml ├── modules.xml ├── scopes │ └── scope_settings.xml └── vcs.xml ├── .npmignore ├── CHANGES.md ├── LICENSE.txt ├── README.md ├── index.js ├── lib ├── db-migrate-wrapper.js ├── gruntTasks.js └── sailsDbMigrate.js ├── package.json └── sails-db-migrate.iml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .idea/workspace.xml 3 | atlassian-ide-plugin.xml 4 | npm-debug.log 5 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | sails-db-migrate -------------------------------------------------------------------------------- /.idea/codeStyleSettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 45 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/sails_db_migrate_node_modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 13 | 14 | 15 | 16 | 17 | 18 | 1.7 19 | 20 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/scopes/scope_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .idea 2 | **/*.md 3 | sails-db-migrate.iml 4 | -------------------------------------------------------------------------------- /CHANGES.md: -------------------------------------------------------------------------------- 1 | # sails-db-migrate changelog 2 | 3 | ## v1.5.0 (2016-12-05) 4 | 5 | * #23 - Added MongoDB support (Thanks [AngelMunoz](https://github.com/AngelMunoz)) 6 | 7 | ## v1.4.0 (2016-06-28) 8 | 9 | * Added wishlist to README 10 | * PR#29, #28 - Adding support for `multipleStatements` in connection settings. 11 | 12 | ## v1.3.2 (2016-06-09) 13 | 14 | * PR#26 - Changed `sails.lift` to `sails.load` to avoid invalid port errors 15 | with newer versions of Sails. 16 | 17 | ## v1.3.1 (2016-02-16) 18 | 19 | * Fixed changelog 20 | 21 | ## v1.3.0 (2016-02-16) 22 | 23 | * Improved error handling when `./config/migrations.js` is missing 24 | * #21 - Added badges 25 | * Removed unused dev dependency 26 | 27 | ## v1.2.0 (2015-11-19) 28 | 29 | * #19 - Updated peer dependencies 30 | * sails to 0.12.x (including rc3 or better) 31 | * db-migrate to 0.10.x (including beta.4 or better) 32 | 33 | ## v1.1.0 (2015-07-27) 34 | 35 | * Add `LOG_LEVEL` environment variable to increase Sails debug logging. 36 | 37 | ## v1.0.0 (2015-07-23) 38 | 39 | * Set version to 1.0.0, because semver. 40 | * PR#17 - Added `--table` option. And added `coffeeFile`, `migrationsDir` and 41 | `table` config options. 42 | 43 | ## v0.8.0 (2015-07-08) 44 | 45 | * PR#15 - Expose `sql-file` and `coffee-file` options 46 | 47 | ## v0.7.0 (2015-05-27) 48 | 49 | * PR#14 - Add `--migrations-dir` option 50 | 51 | ## v0.6.1 (2015-02-20) 52 | 53 | * Added this changelog. 54 | * #13 - Updated peer dependencies 55 | * db-migrate 0.7.0 to 0.9.x 56 | * sails 0.10.4 to 0.11.x 57 | 58 | ## v0.6.0 (2014-12-05) 59 | 60 | * PR#11 - Add SSL support for PostgreSQL. 61 | * PR#12 - Update db-migrate to 0.8.0. 62 | 63 | ## v0.5.0 64 | 65 | * PR#9 - Add support for a url filed in the connection config. 66 | 67 | ## v0.4.0 68 | 69 | * PR#7 - Pass 'migrating: true' to the sails config, so sails bootstrap code 70 | can know that we're not _really_ trying to lift sails. 71 | 72 | ## v0.3.1 73 | 74 | * PR#6 - Disable passing debug into the child process. This fixes 75 | issues running an app under a debugger. 76 | 77 | ## v0.3.0 78 | 79 | * PR#3 - Ass support for env option. 80 | 81 | ## v0.2.2 82 | 83 | * Fix issue running migrations on Windows. 84 | 85 | ## v0.2.1 86 | 87 | * Fix issue with special characters in passwords. 88 | 89 | ## v0.2.0 90 | 91 | * Extract `sailsDbMigrate()` function, to allow migrations to be run 92 | outside of grunt. 93 | 94 | ## v0.1.0 95 | 96 | * Initial release. 97 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 David M. Lee, II 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sails-db-migrate 2 | [![devDependency Status](https://david-dm.org/building5/sails-db-migrate/dev-status.svg)](https://david-dm.org/building5/sails-db-migrate#info=devDependencies) 3 | [![peerDependency Status](https://david-dm.org/building5/sails-db-migrate/peer-status.svg)](https://david-dm.org/building5/sails-db-migrate#info=peerDependencies) 4 | 5 | [db-migrate][] integration for [Sails.js][]. This is a fairly simple wrapper, 6 | which provides [grunt][] tasks for running and creating migrations. It also 7 | extracts the database configuration from the Sails config, so you don't have to 8 | duplicate you config in a `database.json` file. 9 | 10 | Supports Sails 0.10.x. 11 | 12 | ## Setup 13 | 14 | Installation is very typical. 15 | 16 | ```bash 17 | $ npm install --save sails-db-migrate 18 | ``` 19 | 20 | You may also have to explicitly install your database driver. Normallys it's 21 | installed under `sails-{postgresql,mysql}`, but that won't be found outside of 22 | that package. 23 | 24 | ```bash 25 | $ npm install --save pg # or mysql 26 | ``` 27 | 28 | You need to setup `config/migrations.js` to name the connection which you will 29 | use to run migrations. 30 | 31 | ```JavaScript 32 | // config/migrations.js 33 | module.exports.migrations = { 34 | // connection name matches a field from config/connections.js 35 | connection: 'somePostgresqlServer' // or MySQL 36 | }; 37 | ``` 38 | 39 | Optionally, you can specify in the config file the name of the database table to 40 | be used to track migrations (defaults to `migrations`), the directory to use for 41 | migrations (defaults to `migrations`), and whether to create a coffeescript 42 | file for the migrations instead of javascript file (defaults to `false`). 43 | 44 | ```JavaScript 45 | // config/migrations.js 46 | module.exports.migrations = { 47 | // connection name matches a field from config/connections.js 48 | connection: 'somePostgresqlServer', // or MySQL 49 | table: 'sails_migrations', 50 | migrationsDir: 'sails_migrations', 51 | coffeeFile: true 52 | }; 53 | ``` 54 | 55 | You'll also need to setup `tasks/register/dbMigrate.js` to add the `db:migrate` 56 | tasks to grunt. 57 | 58 | ```JavaScript 59 | // tasks/register/dbMigrate.js 60 | module.exports = require('sails-db-migrate').gruntTasks; 61 | ``` 62 | 63 | ## Usage 64 | 65 | ### Help 66 | 67 | Help can be found by running `grunt db:migrate`. 68 | 69 | ```bash 70 | $ grunt db:migrate 71 | ``` 72 | 73 | ### Creating migrations 74 | 75 | You create migrations using the `grunt db:migrate:create` 76 | 77 | ```bash 78 | $ grunt db:migrate:create --name add-some-fooz 79 | 80 | + db-migrate create add-some-fooz 81 | [INFO] Created migration at /Users/dlee/prj/test/migrations/20140829025723-add-some-fooz.js 82 | 83 | Done, without errors. 84 | ``` 85 | 86 | You can edit your new migration file. This is fully documented in the 87 | [db-migrate docs][]. 88 | 89 | ### Running migrations 90 | 91 | Migrations can be run up or down. To run only a certain number of migrations, 92 | specify the `--count` flag.` 93 | 94 | ```bash 95 | $ grunt db:migrate:up 96 | Running "db:migrate:up" (db:migrate) task 97 | + db-migrate up 98 | [INFO] Processed migration 20140829025723-add-some-fooz 99 | [INFO] Done 100 | 101 | Done, without errors. 102 | 103 | $ grunt db:migrate:down --count 2 104 | Running "db:migrate:down" (db:migrate) task 105 | + db-migrate down --count 2 106 | [INFO] Processed migration 20140829025723-add-some-fooz 107 | [INFO] Processed migration 20140829025008-init 108 | [INFO] Done 109 | 110 | Done, without errors. 111 | ``` 112 | 113 | To specify your own migrations directory, use `--migrations-dir`. 114 | 115 | ```bash 116 | $ grunt db:migrate:up --migrations-dir=migrations-special 117 | ``` 118 | 119 | ### Debugging 120 | 121 | Normally, migrations load Sails with a log level of `silent`, since you usually 122 | don't need it. Sometimes, however, Sails will fail to load, and some debug 123 | output would be nice. 124 | 125 | You can set the `LOG_LEVEL` environment variable to turn up sails logging for 126 | the migrations 127 | 128 | ```bash 129 | $ LOG_LEVEL=debug grunt db:migrate:up 130 | ``` 131 | 132 | ### Patches Welcome 133 | 134 | If you'd like to contribute to sails-db-migrate, start by looking at some of the 135 | [open issues][] in the issue tracker. 136 | 137 | [db-migrate]: https://github.com/kunklejr/node-db-migrate 138 | [sails.js]: http://sailsjs.org/ 139 | [grunt]: http://gruntjs.com/ 140 | [db-migrate docs]: https://github.com/kunklejr/node-db-migrate#migrations-api 141 | [open issues]: https://github.com/building5/sails-db-migrate/issues 142 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | gruntTasks: require('./lib/gruntTasks'), 5 | sailsDbMigrate: require('./lib/sailsDbMigrate') 6 | }; 7 | -------------------------------------------------------------------------------- /lib/db-migrate-wrapper.js: -------------------------------------------------------------------------------- 1 | /** 2 | * db-migrate doesn't provide a programmatic interface. Or at least there's a lot of work in the 3 | * bin script I don't want to duplicate. But there's not a great way to search the path for it 4 | * so I can spawn it directly. 5 | * 6 | * Instead, I have this wrapper that I can easily spawn, which simply runs the db-migrate CLI. 7 | */ 8 | 9 | require('db-migrate/bin/db-migrate'); 10 | -------------------------------------------------------------------------------- /lib/gruntTasks.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Sails = require('sails').Sails; 4 | var sailsDbMigrate = require('./sailsDbMigrate'); 5 | 6 | /** 7 | * Builds the command line arguments to pass to db-migrate. 8 | * 9 | * @param grunt Grunt object. 10 | * @param command The db-migrate command to run. 11 | * @returns Arguments array for the db-migrate command. 12 | */ 13 | function buildDbMigrateArgs(grunt, config, command) { 14 | var args = []; 15 | var name = grunt.option('name'); 16 | 17 | args.push(command); 18 | 19 | if (command === 'create') { 20 | if (!name) { 21 | throw new Error('--name required to create migration'); 22 | } 23 | args.push(name); 24 | } 25 | 26 | if (grunt.option('count') !== undefined) { 27 | args.push('--count'); 28 | args.push(grunt.option('count')); 29 | } 30 | 31 | if (grunt.option('dry-run')) { 32 | args.push('--dry-run'); 33 | } 34 | 35 | if (grunt.option('db-verbose')) { 36 | args.push('--verbose'); 37 | } 38 | 39 | if (grunt.option('sql-file')) { 40 | args.push('--sql-file'); 41 | } 42 | 43 | if (grunt.option('coffee-file')) { 44 | args.push('--coffee-file'); 45 | } else if (config.coffeeFile) { 46 | args.push('--coffee-file'); 47 | } 48 | 49 | if (grunt.option('migrations-dir')) { 50 | args.push('--migrations-dir'); 51 | args.push(grunt.option('migrations-dir')); 52 | } else if (config.migrationsDir) { 53 | args.push('--migrations-dir'); 54 | args.push(config.migrationsDir); 55 | } 56 | 57 | if (grunt.option('table')) { 58 | args.push('--table'); 59 | args.push(grunt.option('table')); 60 | } else if (config.table) { 61 | args.push('--table'); 62 | args.push(config.table); 63 | } 64 | 65 | return args; 66 | } 67 | 68 | /** 69 | * Display command usage information. 70 | * 71 | * @param grunt Grunt object. 72 | */ 73 | function usage(grunt) { 74 | grunt.log.writeln('usage: grunt db:migrate[:up|:down|:create] [options]'); 75 | grunt.log.writeln(' See ./migrations/README.md for more details'); 76 | grunt.log.writeln(); 77 | grunt.log.writeln('db:migrate:create Options:'); 78 | grunt.log.writeln(' --name=NAME Name of the migration to create'); 79 | grunt.log.writeln(); 80 | grunt.log.writeln('db:migrate[:up|:down] Options:'); 81 | grunt.log.writeln(' --count=N Max number of migrations to run.'); 82 | grunt.log.writeln(' --dry-run Prints the SQL but doesn\'t run it.'); 83 | grunt.log.writeln(' --db-verbose Verbose mode.'); 84 | grunt.log.writeln(' --sql-file Create sql files for up and down.'); 85 | grunt.log.writeln(' --coffee-file Create a coffeescript migration file.'); 86 | grunt.log.writeln(' --migrations-dir The directory to use for migration files.'); 87 | grunt.log.writeln(' Defaults to "migrations".'); 88 | grunt.log.writeln(' --table Specify the table to track migrations in.'); 89 | grunt.log.writeln(' Defaults to "migrations".'); 90 | } 91 | 92 | /** 93 | * Grunt registration function. 94 | * 95 | * @param grunt Grunt object. 96 | */ 97 | module.exports = function (grunt) { 98 | grunt.registerTask('db:migrate', 'Run the database migrations', function (command) { 99 | var done = this.async(); 100 | var name = grunt.option('name'); 101 | var sails; 102 | var sailsConfig; 103 | var env; 104 | 105 | if (!command) { 106 | usage(grunt); 107 | return done(); 108 | } 109 | 110 | if (grunt.option('env')){ 111 | env = grunt.option('env'); 112 | }else{ 113 | env = process.env.NODE_ENV; 114 | } 115 | 116 | sailsConfig = { 117 | port: -1, 118 | log: { level: process.env.LOG_LEVEL || 'silent' }, 119 | environment: env, 120 | migrating: true 121 | }; 122 | 123 | // load Sails to get the effective configuration. We don't actually need to 124 | // run it, and we certainly don't want any log messages. We just want the 125 | // config. 126 | sails = new Sails(); 127 | sails.load(sailsConfig, function (err) { 128 | var url; 129 | var args; 130 | 131 | if (err) { 132 | grunt.fail.fatal('Could not load sails', err); 133 | return done(err); 134 | } 135 | 136 | if (!sails.config.migrations) { 137 | grunt.fail.fatal('Migrations not configured. Please setup ./config/migrations.js'); 138 | return done(); 139 | } 140 | 141 | try { 142 | args = buildDbMigrateArgs(grunt, sails.config.migrations, command); 143 | grunt.log.writeln('+ db-migrate', args.join(' ')); 144 | url = sailsDbMigrate(args, sails, done); 145 | grunt.log.writeln('DATABASE_URL=' + url); 146 | } catch (err) { 147 | grunt.fail.fatal(err); 148 | done(err); 149 | } 150 | }); 151 | }); 152 | }; 153 | -------------------------------------------------------------------------------- /lib/sailsDbMigrate.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var util = require('util'); 4 | var fork = require('child_process').fork; 5 | var path = require('path'); 6 | 7 | /** 8 | * Build a URL from the Sails connection config. 9 | * 10 | * @param {object} connection Sails connection config. 11 | * @returns {string} URL for connecting to the specified database. 12 | * @throws Error if adapter is not supported. 13 | */ 14 | function buildURL(connection) { 15 | var scheme; 16 | var url; 17 | 18 | switch (connection.adapter) { 19 | case 'sails-mysql': 20 | scheme = 'mysql'; 21 | break; 22 | case 'sails-postgresql': 23 | scheme = 'postgres'; 24 | break; 25 | case 'sails-mongo': 26 | scheme = 'mongodb' 27 | break; 28 | default: 29 | throw new Error('migrations not supported for ' + connection.adapter); 30 | } 31 | 32 | // return the connection url if one is configured 33 | if (connection.url) { 34 | return connection.url; 35 | } 36 | 37 | url = scheme + '://'; 38 | if (connection.user) { 39 | url += connection.user; 40 | if (connection.password) { 41 | url += ':' + encodeURIComponent(connection.password) 42 | } 43 | url += '@'; 44 | } 45 | url += connection.host || 'localhost'; 46 | if (connection.port) { 47 | url += ':' + connection.port; 48 | } 49 | if (connection.database) { 50 | url += '/' + encodeURIComponent(connection.database); 51 | } 52 | 53 | var params = []; 54 | if (connection.multipleStatements) { 55 | params.push('multipleStatements=true'); 56 | } 57 | 58 | if (params.length > 0) { 59 | url += '?' + params.join('&'); 60 | } 61 | 62 | return url; 63 | } 64 | 65 | /** 66 | * Parse out the database URL from the sails config. 67 | * 68 | * @param sailsConfig Sails config object. 69 | * @returns {object} .url and .cleanURL for the database connection. 70 | * @throws Error if adapter is not supported. 71 | */ 72 | function parseSailsConfig(sailsConfig) { 73 | var res = {}; 74 | var connection; 75 | 76 | if (!sailsConfig.migrations) { 77 | throw new Error('Migrations not configured. Please setup ./config/migrations.js'); 78 | } 79 | 80 | var connectionName = sailsConfig.migrations.connection; 81 | if (!connectionName) { 82 | throw new Error('connection missing from ./config/migrations.js'); 83 | } 84 | 85 | connection = sailsConfig.connections[connectionName]; 86 | 87 | if (!connection) { 88 | throw new Error('could not find connection ' + connectionName + ' in ./config/connections.js'); 89 | } 90 | 91 | // build the db url, which contains the password 92 | res.url = buildURL(connection); 93 | // check for ssl option in connection config 94 | if (connection.ssl) { 95 | res.adapter = connection.adapter; 96 | res.ssl = true; 97 | } 98 | // now build a clean one for logging, without the password 99 | if (connection.password != null) { 100 | connection.password = '****'; 101 | } 102 | res.cleanURL = buildURL(connection); 103 | 104 | return res; 105 | } 106 | 107 | /** 108 | * Run the database migrations on the given sails object. 109 | * 110 | * @param args Command line arguments to pass to db:migrate 111 | * @param [sails] Sails object to migrate. Defaults to the global sails object. 112 | * @param done Completion callback. 113 | * @return The URL for the database to be migrated. 114 | */ 115 | module.exports = function (args, sails, done) { 116 | var dbMigrate = path.join(__dirname, 'db-migrate-wrapper.js'); 117 | var parsed, child; 118 | 119 | if (!done && typeof (sails) === 'function') { 120 | done = sails; 121 | sails = global.sails; 122 | } 123 | 124 | parsed = parseSailsConfig(sails.config); 125 | 126 | // export DATABASE_URL for db-migrate 127 | process.env.DATABASE_URL = parsed.url; 128 | // export PGSSLMODE for db-migrate if ssl=true 129 | if (parsed.ssl) { 130 | // set the appropriate environment variable for postgres databases 131 | if (parsed.adapter === 'sails-postgresql') { 132 | process.env.PGSSLMODE = 'require'; 133 | } 134 | } 135 | // run db-migrate 136 | // the empty execArgv option explicitly disables debugging options from being passed to the child, 137 | // which was causing problems when trying to interactively debug an application that calls sails-db-migrate. 138 | child = fork(dbMigrate, args, { execArgv: [] }); 139 | child.on('exit', function (code) { 140 | if (code !== 0) { 141 | return done(new Error('Migrations failed')); 142 | } 143 | done(); 144 | }); 145 | 146 | return parsed.cleanURL; 147 | }; 148 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sails-db-migrate", 3 | "version": "1.5.0", 4 | "description": "db-migrate integration for sails.js", 5 | "main": "index.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/building5/sails-db-migrate.git" 9 | }, 10 | "keywords": [ 11 | "sails", 12 | "database", 13 | "migrations" 14 | ], 15 | "author": "David M. Lee, II", 16 | "licenses": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/building5/sails-db-migrate/issues" 19 | }, 20 | "homepage": "https://github.com/building5/sails-db-migrate", 21 | "dependencies": {}, 22 | "devDependencies": {}, 23 | "peerDependencies": { 24 | "db-migrate": ">0.7.0 <0.11 || >=0.10.0-beta.4 <0.11", 25 | "sails": ">0.10.4 <0.13 || >=0.12.0-rc3 <0.13" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /sails-db-migrate.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | --------------------------------------------------------------------------------