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

Commit 388f8784 by Sascha Depold

default mysql engine: InnoDB

1 parent bfffd58b
...@@ -8,7 +8,7 @@ var QueryGenerator = module.exports = { ...@@ -8,7 +8,7 @@ var QueryGenerator = module.exports = {
createTableQuery: function(tableName, attributes, options) { createTableQuery: function(tableName, attributes, options) {
options = options || {} options = options || {}
var query = "CREATE TABLE IF NOT EXISTS <%= table %> (<%= attributes%>)" var query = "CREATE TABLE IF NOT EXISTS <%= table %> (<%= attributes%>) ENGINE=<%= engine %> <%= charset %>"
, primaryKeys = [] , primaryKeys = []
, attrStr = Utils._.map(attributes, function(dataType, attr) { , attrStr = Utils._.map(attributes, function(dataType, attr) {
var dt = dataType var dt = dataType
...@@ -19,15 +19,17 @@ var QueryGenerator = module.exports = { ...@@ -19,15 +19,17 @@ var QueryGenerator = module.exports = {
return Utils.addTicks(attr) + " " + dt return Utils.addTicks(attr) + " " + dt
} }
}).join(", ") }).join(", ")
, values = {table: Utils.addTicks(tableName), attributes: attrStr} , values = {
table: Utils.addTicks(tableName),
attributes: attrStr,
engine: options.engine || 'InnoDB',
charset: (options.charset ? "DEFAULT CHARSET=" + options.charset : "")
}
, pkString = primaryKeys.map(function(pk) {return Utils.addTicks(pk)}).join(", ") , pkString = primaryKeys.map(function(pk) {return Utils.addTicks(pk)}).join(", ")
if (pkString.length > 0) values.attributes += ", PRIMARY KEY (" + pkString + ")" if(pkString.length > 0) values.attributes += ", PRIMARY KEY (" + pkString + ")"
if(options.charset) query += " DEFAULT CHARSET=" + options.charset
query += ";"
return Utils._.template(query)(values) return Utils._.template(query)(values).trim() + ";"
}, },
dropTableQuery: function(tableName, options) { dropTableQuery: function(tableName, options) {
......
...@@ -4,7 +4,9 @@ var assert = require("assert") ...@@ -4,7 +4,9 @@ var assert = require("assert")
module.exports = { module.exports = {
'create table query': function() { 'create table query': function() {
eql(QueryGenerator.createTableQuery('myTable', {title: 'VARCHAR(255)', name: 'VARCHAR(255)'}), "CREATE TABLE IF NOT EXISTS `myTable` (`title` VARCHAR(255), `name` VARCHAR(255));") eql(QueryGenerator.createTableQuery('myTable', {title: 'VARCHAR(255)', name: 'VARCHAR(255)'}), "CREATE TABLE IF NOT EXISTS `myTable` (`title` VARCHAR(255), `name` VARCHAR(255)) ENGINE=InnoDB;")
eql(QueryGenerator.createTableQuery('myTable', {title: 'VARCHAR(255)', name: 'VARCHAR(255)'}, {engine: 'MyISAM'}), "CREATE TABLE IF NOT EXISTS `myTable` (`title` VARCHAR(255), `name` VARCHAR(255)) ENGINE=MyISAM;")
eql(QueryGenerator.createTableQuery('myTable', {title: 'VARCHAR(255)', name: 'VARCHAR(255)'}, {charset: 'latin1'}), "CREATE TABLE IF NOT EXISTS `myTable` (`title` VARCHAR(255), `name` VARCHAR(255)) ENGINE=InnoDB DEFAULT CHARSET=latin1;")
}, },
'drop table query': function() { 'drop table query': function() {
eql(QueryGenerator.dropTableQuery('myTable'), "DROP TABLE IF EXISTS `myTable`;") eql(QueryGenerator.dropTableQuery('myTable'), "DROP TABLE IF EXISTS `myTable`;")
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!