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

Commit 8e09a1c5 by Sascha Depold

methods for starting, committing and rollbacking a transactin

1 parent 5610e7de
......@@ -454,6 +454,36 @@ module.exports = (function() {
return query
},
/**
* Returns a query that starts a transaction.
*
* @param {Object} options An object with options.
* @return {String} The generated sql query.
*/
startTransactionQuery: function(options) {
throwMethodUndefined('startTransactionQuery')
},
/**
* Returns a query that commits a transaction.
*
* @param {Object} options An object with options.
* @return {String} The generated sql query.
*/
commitTransactionQuery: function(options) {
throwMethodUndefined('commitTransactionQuery')
},
/**
* Returns a query that rollbacks a transaction.
*
* @param {Object} options An object with options.
* @return {String} The generated sql query.
*/
rollbackTransactionQuery: function(options) {
throwMethodUndefined('rollbackTransactionQuery')
},
addLimitAndOffset: function(options, query){
if (options.offset && !options.limit) {
query += " LIMIT " + options.offset + ", " + 10000000000000;
......
......@@ -327,6 +327,24 @@ module.exports = (function() {
return Utils._.template(sql)({ tableName: tableName, indexName: indexName })
},
/**
* Returns a query that starts a transaction.
*
* @param {Object} options An object with options.
* @return {String} The generated sql query.
*/
startTransactionQuery: function(options) {
return "START TRANSACTION;"
},
commitTransactionQuery: function(options) {
return "COMMIT;"
},
rollbackTransactionQuery: function(options) {
return "ROLLBACK;"
},
attributesToSQL: function(attributes) {
var result = {}
......
......@@ -798,6 +798,45 @@ module.exports = (function() {
return this.QueryGenerator.escape(value)
}
QueryInterface.prototype.startTransaction = function(transaction, options) {
if (!transaction) {
throw new Error('Unable to start a transaction without transaction object!')
}
options = Utils._.extend({
transaction: transaction
}, options || {})
var sql = this.QueryGenerator.startTransactionQuery(options)
return this.queryAndEmit([sql, null, options], 'startTransaction')
}
QueryInterface.prototype.commitTransaction = function(transaction, options) {
if (!transaction) {
throw new Error('Unable to commit a transaction without transaction object!')
}
options = Utils._.extend({
transaction: transaction
}, options || {})
var sql = this.QueryGenerator.commitTransactionQuery(options)
return this.queryAndEmit([sql, null, options], 'commitTransaction')
}
QueryInterface.prototype.rollbackTransaction = function(transaction, options) {
if (!transaction) {
throw new Error('Unable to rollback a transaction without transaction object!')
}
options = Utils._.extend({
transaction: transaction
}, options || {})
var sql = this.QueryGenerator.rollbackTransactionQuery(options)
return this.queryAndEmit([sql, null, options], 'rollbackTransaction')
}
// private
var buildScope = function() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!