Skip to content

Commit 6a9165f

Browse files
committed
fix(createMigrationsTable): create schema
Create schema for migrations table before creation of migrations table if the schema not exists Signed-off-by: Alexander Maslov <[email protected]>
1 parent 42e289b commit 6a9165f

File tree

4 files changed

+106
-53
lines changed

4 files changed

+106
-53
lines changed

.travis.yml

+3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ cache:
3030
directories:
3131
- node_modules
3232

33+
services:
34+
- postgresql
35+
3336
addons:
3437
apt:
3538
sources:

index.js

+61-17
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,12 @@ var PgDriver = Base.extend({
238238
return this.all('SET search_path TO ' + searchPath);
239239
}.bind(this)
240240
)
241+
.then(
242+
function () {
243+
// create schema if not exists
244+
return this.all('SET search_path TO ' + this.schema);
245+
}.bind(this)
246+
)
241247
.then(
242248
function () {
243249
return this.all(
@@ -394,6 +400,12 @@ var PgDriver = Base.extend({
394400
},
395401

396402
renameTable: function (tableName, newTableName, callback) {
403+
let options = {};
404+
if (typeof callback === 'object') {
405+
options = callback;
406+
callback = null;
407+
}
408+
397409
var sql = util.format(
398410
'ALTER TABLE "%s" RENAME TO "%s"',
399411
tableName,
@@ -403,6 +415,20 @@ var PgDriver = Base.extend({
403415
},
404416

405417
removeColumn: function (tableName, columnName, callback) {
418+
let options = {};
419+
if (typeof callback === 'object') {
420+
options = callback;
421+
callback = null;
422+
}
423+
424+
if (options.columnStrategy === 'delay') {
425+
return this.renameColumn(
426+
tableName,
427+
columnName,
428+
options.passthrough.column
429+
);
430+
}
431+
406432
var sql = util.format(
407433
'ALTER TABLE "%s" DROP COLUMN "%s"',
408434
tableName,
@@ -413,6 +439,12 @@ var PgDriver = Base.extend({
413439
},
414440

415441
renameColumn: function (tableName, oldColumnName, newColumnName, callback) {
442+
let options = {};
443+
if (typeof callback === 'object') {
444+
options = callback;
445+
callback = null;
446+
}
447+
416448
var sql = util.format(
417449
'ALTER TABLE "%s" RENAME COLUMN "%s" TO "%s"',
418450
tableName,
@@ -423,7 +455,13 @@ var PgDriver = Base.extend({
423455
},
424456

425457
changeColumn: function (tableName, columnName, columnSpec, callback) {
426-
return setNotNull.call(this);
458+
let options = {};
459+
if (typeof callback === 'object') {
460+
options = callback;
461+
callback = null;
462+
}
463+
464+
return setNotNull.call(this).nodeify(callback);
427465

428466
function setNotNull () {
429467
var setOrDrop = columnSpec.notNull === true ? 'SET' : 'DROP';
@@ -434,14 +472,10 @@ var PgDriver = Base.extend({
434472
setOrDrop
435473
);
436474

437-
return this.runSql(sql).nodeify(setUnique.bind(this));
475+
return this.runSql(sql).then(setUnique.bind(this));
438476
}
439477

440-
function setUnique (err) {
441-
if (err) {
442-
return Promise.reject(err);
443-
}
444-
478+
function setUnique () {
445479
var sql;
446480
var constraintName = tableName + '_' + columnName + '_key';
447481

@@ -452,24 +486,20 @@ var PgDriver = Base.extend({
452486
constraintName,
453487
columnName
454488
);
455-
return this.runSql(sql).nodeify(setDefaultValue.bind(this));
489+
return this.runSql(sql).then(setDefaultValue.bind(this));
456490
} else if (columnSpec.unique === false) {
457491
sql = util.format(
458492
'ALTER TABLE "%s" DROP CONSTRAINT "%s"',
459493
tableName,
460494
constraintName
461495
);
462-
return this.runSql(sql).nodeify(setDefaultValue.bind(this));
496+
return this.runSql(sql).then(setDefaultValue.bind(this));
463497
} else {
464498
return setDefaultValue.call(this);
465499
}
466500
}
467501

468-
function setDefaultValue (err) {
469-
if (err) {
470-
return Promise.reject(err).nodeify(callback);
471-
}
472-
502+
function setDefaultValue () {
473503
var sql;
474504

475505
if (columnSpec.defaultValue !== undefined) {
@@ -492,9 +522,7 @@ var PgDriver = Base.extend({
492522
columnName
493523
);
494524
}
495-
return this.runSql(sql)
496-
.then(setType.bind(this))
497-
.nodeify(callback);
525+
return this.runSql(sql).then(setType.bind(this));
498526
}
499527

500528
function setType () {
@@ -553,6 +581,12 @@ var PgDriver = Base.extend({
553581
},
554582

555583
removeForeignKey: function (tableName, keyName, callback) {
584+
let options = {};
585+
if (typeof callback === 'object') {
586+
options = callback;
587+
callback = null;
588+
}
589+
556590
var sql = util.format(
557591
'ALTER TABLE "%s" DROP CONSTRAINT "%s"',
558592
tableName,
@@ -654,6 +688,16 @@ var PgDriver = Base.extend({
654688
if (typeof callback === 'function') {
655689
return Promise.resolve().nodeify(callback);
656690
} else return Promise.resolve();
691+
},
692+
693+
_meta: {
694+
supports: {
695+
// all legacy callbacks can be option objects
696+
optionParam: true,
697+
// support for column strategies for example on dropping not
698+
// null columns
699+
columnStrategies: true
700+
}
657701
}
658702
});
659703

package-lock.json

+39-33
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "db-migrate-pg",
3-
"version": "1.0.0",
3+
"version": "1.2.2",
44
"description": "A postgresql driver for db-migrate",
55
"main": "index.js",
66
"scripts": {
@@ -31,8 +31,8 @@
3131
"homepage": "https://github.com/db-migrate/pg",
3232
"dependencies": {
3333
"bluebird": "^3.1.1",
34-
"db-migrate-base": "^2.0.0",
35-
"pg": "^7.8.0",
34+
"db-migrate-base": "^2.3.0",
35+
"pg": "^8.0.3",
3636
"semver": "^5.0.3"
3737
},
3838
"devDependencies": {

0 commit comments

Comments
 (0)