不要怂,就是干,撸起袖子干!

Commit 4e107803 by Mick Hansen

Merge pull request #2750 from sequelize/hotfix/remove-migrator

Mark migration logic as deprecated.
2 parents 4c1b38e9 17cb0dc2
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
- [INTERNALS] Update `inflection` dependency to v1.5.3 - [INTERNALS] Update `inflection` dependency to v1.5.3
- [FEATURE] Replaced string error messages for connection errors with error objects. [#2576](https://github.com/sequelize/sequelize/pull/2576) - [FEATURE] Replaced string error messages for connection errors with error objects. [#2576](https://github.com/sequelize/sequelize/pull/2576)
- [FEATURE] Support for updating fields on duplicate key in bulk update (mysql only) [#2692](https://github.com/sequelize/sequelize/pull/2692) - [FEATURE] Support for updating fields on duplicate key in bulk update (mysql only) [#2692](https://github.com/sequelize/sequelize/pull/2692)
- [FEATURE] Basic support for Microsoft SQL Server - [FEATURE] Basic support for Microsoft SQL Server
- [INTERNALS] Deprecate migration logic. This is now implemented in [umzug](https://github.com/sequelize/umzug) and the [CLI](https://github.com/sequelize/cli).
#### Backwards compatability changes #### Backwards compatability changes
- Some of the string error messages for connection errors have been replaced with actual error instances. Checking for connection errors should now be more consistent. - Some of the string error messages for connection errors have been replaced with actual error instances. Checking for connection errors should now be more consistent.
......
...@@ -400,6 +400,15 @@ module.exports = (function() { ...@@ -400,6 +400,15 @@ module.exports = (function() {
* @return {Migrator} An instance of Migrator. * @return {Migrator} An instance of Migrator.
*/ */
Sequelize.prototype.getMigrator = function(options, force) { Sequelize.prototype.getMigrator = function(options, force) {
deprecated([
'Using the migration engine of the sequelize core is deprecated and will be removed in an',
'upcoming version of sequelize. Please note that migration engine has been replaced with',
'umzug (https://github.com/sequelize/umzug) and that the previously available migrator logic',
'was basically just a wrapper around the query interface of sequelize.',
'The sequelize CLI was rewritten accordingly and is backwards compatible with your existing',
'migrations.'
].join(' '));
var Migrator = require('./migrator'); var Migrator = require('./migrator');
if (force) { if (force) {
......
module.exports =
up: (migration, DataTypes, done) ->
migration
.createTable 'Person',
name: DataTypes.STRING
isBetaMember:
type: DataTypes.BOOLEAN
defaultValue: false
allowNull: false
.complete done
down: (migration, DataTypes, done) ->
migration
.dropTable 'Person'
.complete done
module.exports = {
up: function(migration, DataTypes, done) {
migration
.createTable('Person', {
name: DataTypes.STRING,
isBetaMember: {
type: DataTypes.BOOLEAN,
defaultValue: false,
allowNull: false
}
})
.complete(done)
},
down: function(migration, DataTypes, done) {
migration.dropTable('Person').complete(done)
}
}
module.exports = {
up: function(migration, DataTypes, done) { done() },
down: function(migration, DataTypes, done) { done() }
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.renameTable('Person', 'User').complete(done)
},
down: function(migration, DataTypes, done) {
migration.renameTable('User', 'Person').complete(done)
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration
.addColumn('User', 'isAdmin', { type: DataTypes.BOOLEAN, defaultValue: false, allowNull: false })
.complete(function(err) {
if (err) {
done(err)
} else {
migration
.addColumn('User', 'signature', DataTypes.TEXT)
.complete(function(err) {
if (err) {
done(err)
} else {
migration.addColumn('User', 'shopId', { type: DataTypes.INTEGER, allowNull: true }).complete(done)
}
})
}
})
},
down: function(migration, DataTypes, done) {
migration.removeColumn('User', 'signature').complete(function(err) {
if (err) {
done(err)
} else {
migration.removeColumn('User', 'shopId').complete(function(err) {
if (err) {
done(err)
} else {
migration.removeColumn('User', 'isAdmin').complete(done)
}
})
}
})
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.addColumn('User', 'level', { type: DataTypes.STRING }).complete(function() {
migration.changeColumn('User', 'level', { type: DataTypes.ENUM, allowNull: false, values: ['basic', 'advanced'] }).complete(done);
});
},
down: function(migration, DataTypes, done) {
migration.removeColumn('User', 'level').complete(done);
}
};
module.exports = {
up: function(migration, DataTypes, done) {
migration.addColumn('User', 'uniqueName', { type: DataTypes.STRING }).complete(function() {
migration.changeColumn('User', 'uniqueName', { type: DataTypes.STRING, allowNull: false, unique: true }).complete(done)
})
},
down: function(migration, DataTypes, done) {
migration.removeColumn('User', 'uniqueName').complete(done)
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.removeColumn('User', 'shopId').complete(done)
},
down: function(migration, DataTypes, done) {
migration.addColumn('User', 'shopId', { type: DataTypes.INTEGER, allowNull: true }).complete(done)
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.changeColumn('User', 'signature', {
type: DataTypes.STRING,
allowNull: false,
defaultValue: 'Signature'
}).complete(done)
},
down: function(migration, DataTypes, done) { done() }
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.renameColumn('User', 'signature', 'sig').complete(done)
},
down: function(migration, DataTypes, done) {
migration.renameColumn('User', 'sig', 'signature').complete(done)
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.createFunction('get_an_answer', [], 'int', 'plpgsql',
'RETURN 42;'
).complete(done);
},
down: function(migration, DataTypes, done) {
migration.dropFunction('get_an_answer', []).complete(done);
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.renameFunction('get_an_answer', [], 'get_the_answer').complete(done);
},
down: function(migration, DataTypes, done) {
migration.renameFunction('get_the_answer', [], 'get_an_answer').complete(done);
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.dropFunction('get_the_answer', []).complete(done);
},
down: function(migration, DataTypes, done) {
migration.createFunction('get_the_answer', 'int', 'plpgsql',
'RETURN 42;'
).complete(done);
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration
.createTable('trigger_test', {
name: DataTypes.STRING,
updated_at: {
type: DataTypes.DATE,
defaultValue: DataTypes.NOW,
allowNull: false
}
})
.complete(done)
},
down: function(migration, DataTypes, done) {
migration.dropTable('trigger_test').complete(done)
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.createTrigger('trigger_test', 'updated_at', 'before', {update: true},
'bump_updated_at', []).complete(done);
},
down: function(migration, DataTypes, done) {
migration.dropTrigger('trigger_test', 'updated_at').complete(done);
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.renameTrigger('trigger_test', 'updated_at', 'update_updated_at').complete(done);
},
down: function(migration, DataTypes, done) {
migration.renameTrigger('trigger_test', 'update_updated_at', 'updated_at').complete(done);
}
}
module.exports = {
up: function(migration, DataTypes, done) {
migration.dropTrigger('trigger_test', 'update_updated_at').complete(done);
},
down: function(migration, DataTypes, done) {
migration.createTrigger('trigger_test', 'update_updated_at', 'before', {update: true},
'bump_updated_at', []).complete(done);
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!