Socket
Socket
Sign inDemoInstall

db-migrate

Package Overview
Dependencies
Maintainers
2
Versions
139
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

db-migrate - npm Package Compare versions

Comparing version 0.10.0-beta.18 to 0.10.0-beta.19

105

api.js

@@ -307,2 +307,32 @@ var assert = require('assert');

/**
* Executes up a given number of migrations or a specific one.
*
* Defaults to up all migrations if no count is given.
*/
sync: function(specification, opts, callback) {
if (arguments.length > 0) {
if (typeof(specification) === 'string') {
this.internals.argv.destination = specification;
}
if (typeof(opts) === 'string') {
this.internals.migrationMode = opts;
this.internals.matching = opts;
}
else if (typeof(opts) === 'function') {
callback = opts;
}
}
return Promise.fromCallback(function(callback) {
executeSync(this.internals, this.config, callback);
}.bind(this)).asCallback(callback);
},
/**
* Executes down for all currently migrated migrations.

@@ -524,3 +554,4 @@ */

.usage(
'Usage: db-migrate [up|down|reset|create|db|seed|transition] [[dbname/]migrationName|all] [options]'
'Usage: db-migrate [up|down|reset|sync|create|db|seed|transition] ' +
'[[dbname/]migrationName|all] [options]'
)

@@ -563,3 +594,4 @@

.describe('sql-file',
'Automatically create two sql files for up and down statements in /sqls and generate the javascript code that loads them.'
'Automatically create two sql files for up and down statements in ' +
'/sqls and generate the javascript code that loads them.'
)

@@ -571,3 +603,4 @@ .boolean('sql-file')

.describe('ignore-on-init',
'Create files that will run only if ignore-on-init in the env is set to false (currently works onlt with SQL)'
'Create files that will run only if ignore-on-init in the env is set ' +
'to false (currently works onlt with SQL)'
).boolean('ignore-on-init')

@@ -890,2 +923,38 @@

function executeSync(internals, config, callback) {
migrationHook(internals)
.then(function() {
var Migrator = require('./lib/migrator.js');
var index = require('./connect');
if (!internals.argv.count) {
internals.argv.count = Number.MAX_VALUE;
}
index.connect({
config: config.getCurrent().settings,
internals: internals
}, Migrator, function(err, migrator) {
assert.ifError(err);
if (internals.locTitle)
migrator.migrationsDir = path.resolve(internals.argv['migrations-dir'],
internals.locTitle);
else
migrator.migrationsDir = path.resolve(internals.argv['migrations-dir']);
internals.migrationsDir = migrator.migrationsDir;
migrator.driver.createMigrationsTable(function(err) {
assert.ifError(err);
log.verbose('migration table created');
migrator.sync(internals.argv, internals.onComplete.bind(this,
migrator, internals, callback));
});
});
});
}
function executeDown(internals, config, callback) {

@@ -934,2 +1003,4 @@

index.driver(config.getCurrent().settings, function(err, db) {
assert.ifError(err);
if (internals.mode === 'create') {

@@ -1102,2 +1173,20 @@ db.createDatabase(internals.argv.dbname, {

break;
case 'sync':
if (internals.argv._.length === 0) {
log.error('Missing sync destination!');
process.exit(1);
}
internals.argv.count = Number.MAX_VALUE;
internals.argv.destination = internals.argv._.shift().toString();
if (folder[1]) {
internals.matching = folder[1];
internals.migrationMode = folder[1];
}
executeSync(internals, config);
break;
case 'up':

@@ -1112,6 +1201,5 @@ case 'down':

if (action === 'down') {
log.info(
'Ignoring migration name for down migrations. Use --count to control how many down migrations are run.'
);
internals.argv.destination = null;
internals.argv.count = internals.argv.count || Number.MAX_VALUE;
internals.argv.destination = internals.argv._.shift().toString();
} else {

@@ -1175,3 +1263,4 @@ internals.argv.destination = internals.argv._.shift().toString();

log.error('Invalid Action: Must be [up|down|create|reset|seed|db].');
log.error('Invalid Action: Must be [up|down|create|reset|sync|seed|' +
'db|transition].');
optimist.showHelp();

@@ -1178,0 +1267,0 @@ process.exit(1);

@@ -122,6 +122,31 @@ var dbmUtil = require('db-migrate-shared').util;

} else {
this.downToBy(funcOrOpts.count, callback);
this.downToBy(funcOrOpts.destination, funcOrOpts.count, callback);
}
},
sync: function(funcOrOpts, callback) {
var self = this;
Migration.loadFromDatabase(self.migrationsDir, self._driver,
self.internals, function(err, completedMigrations) {
if (err) { callback(err); return; }
var mode = dbmUtil.syncMode(
completedMigrations,
funcOrOpts.destination
);
if(mode === 1) {
log.info('Syncing upwards.');
self.up(funcOrOpts, callback);
}
else {
log.info('Syncing downwards.');
self.down(funcOrOpts, callback);
}
});
},
upToBy: function(partialName, count, callback) {

@@ -177,3 +202,3 @@ var self = this;

downToBy: function(count, callback) {
downToBy: function(partialName, count, callback) {
var self = this;

@@ -183,3 +208,3 @@ Migration.loadFromDatabase(self.migrationsDir, self._driver, self.internals, function(err, completedMigrations) {

var toRun = dbmUtil.filterDown(completedMigrations, count);
var toRun = dbmUtil.filterDown(completedMigrations, partialName, count);

@@ -186,0 +211,0 @@ if (toRun.length === 0) {

19

package.json

@@ -34,3 +34,3 @@ {

],
"version": "0.10.0-beta.18",
"version": "0.10.0-beta.19",
"engines": {

@@ -50,3 +50,3 @@ "node": ">=0.6.0"

"bluebird": "^3.1.1",
"db-migrate-shared": "^1.0.2",
"db-migrate-shared": "^1.1.2",
"dotenv": "^2.0.0",

@@ -66,18 +66,11 @@ "final-fs": "^1.6.0",

"devDependencies": {
"code": "^3.0.1",
"db-meta": "~0.4.1",
"code": "^4.0.0",
"db-migrate-base": "^1.2.5",
"db-migrate-mongodb": "^1.1.4",
"db-migrate-mysql": "^1.1.7",
"db-migrate-pg": "^0.1.10",
"db-migrate-sqlite3": "^0.1.6",
"lab": "^10.9.0",
"mysql": "^2.10.2",
"pg": "^6.1.0",
"db-migrate-sqlite3": "^0.1.9",
"lab": "^11.1.0",
"proxyquire": "^1.4.0",
"rimraf": "~2.5.0",
"sinon": "^1.17.3",
"sinon-as-promised": "^4.0.2",
"sqlite3": "^3.1.1",
"vows": "0.8.0"
"sinon-as-promised": "^4.0.2"
},

@@ -84,0 +77,0 @@ "scripts": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc