一点优化

master 3.0.9
宇天 2019-09-23 16:07:30 +08:00
parent 1af8c64323
commit e45183ceb8
6 changed files with 19 additions and 14 deletions

View File

@ -1,3 +1,7 @@
# 3.0.9 / 2019-09-23
* 优化创建数据库/表时的默认配置顶;
* 优化字段的默认值0的判断
# 3.0.8 / 2019-09-19 # 3.0.8 / 2019-09-19
* 修复tableCreate在没有索引时建表失败的bug * 修复tableCreate在没有索引时建表失败的bug
* 更新文档 * 更新文档

View File

@ -108,7 +108,7 @@ db.tableList().then(list => {
### dbCreate(name, options) ### dbCreate(name, options)
* name `<String>` [必传], 数据库名字 * name `<String>` [必传], 数据库名字
* options `<Object>`, [传], 数据库的配置 * options `<Object>`, [传], 数据库的配置
- charset `<String>` 默认 utf8mb4 - charset `<String>` 默认 utf8mb4
@ -133,7 +133,7 @@ db.dbCreate('foo', { charset: 'utf8' }) // 默认是utf8mb4
- unique `<Boolean>` 是否为 唯一索引 - unique `<Boolean>` 是否为 唯一索引
- default `<Any>` 设置默认值 - default `<Any>` 设置默认值
- update `<Boolean>` 是否自动更新(只有 datetime & timestamp 可以设) - update `<Boolean>` 是否自动更新(只有 datetime & timestamp 可以设)
* options `<Object>`, [传], 表的配置 * options `<Object>`, [传], 表的配置
- charset `<String>` 默认 utf8mb4 - charset `<String>` 默认 utf8mb4
- engine `<String>` 默认 InnoDB - engine `<String>` 默认 InnoDB

View File

@ -124,7 +124,7 @@ class Api {
} }
// 创建新的数据库 // 创建新的数据库
dbCreate(name, { charset = 'utf8mb4' }) { dbCreate(name, { charset = 'utf8mb4' } = {}) {
if (!name) { if (!name) {
return Promise.reject('Empty database name.') return Promise.reject('Empty database name.')
} }
@ -146,7 +146,7 @@ class Api {
} }
// 创建新的表, // 创建新的表,
tableCreate(name, fields, { charset = 'utf8mb4', engine = 'InnoDB' }) { tableCreate(name, fields, { charset = 'utf8mb4', engine = 'InnoDB' } = {}) {
if (!name) { if (!name) {
return Promise.reject('Empty database name.') return Promise.reject('Empty database name.')
} }

View File

@ -406,9 +406,7 @@ class Method {
return this.connect().then(conn => { return this.connect().then(conn => {
const defer = Promise.defer() const defer = Promise.defer()
let sql = `ALTER TABLE ${ let sql = `ALTER TABLE ${this.cache.table} ADD ${unique} INDEX \`${name}\` (${opt.field})`
this.cache.table
} ADD ${unique} INDEX \`${name}\` (${opt.field})`
conn.query(sql, (err, result) => { conn.query(sql, (err, result) => {
conn.release() conn.release()

View File

@ -237,13 +237,14 @@ const parser = {
} }
let notnull = it.notnull ? 'NOT NULL' : 'NULL' let notnull = it.notnull ? 'NOT NULL' : 'NULL'
if (/CHAR/.test(it.type)) { if (~it.type.indexOf('CHAR')) {
it.default = it.default ? escape(it.default) : '' it.default = it.default ? escape(it.default) : ''
} }
// 这几种类型,不允许设置默认值 // 这几种类型,不允许设置默认值
if (['TEXT', 'BLOB', 'JSON', 'GEOMETRY'].includes(it.type)) { if (['TEXT', 'BLOB', 'JSON', 'GEOMETRY'].includes(it.type)) {
notnull = 'NULL' notnull = 'NULL'
delete it.default
} }
// 这2种类型,如果设置了自动更新时间戳, 则默认值自动改为当前时间戳 // 这2种类型,如果设置了自动更新时间戳, 则默认值自动改为当前时间戳
@ -257,10 +258,12 @@ const parser = {
// 这3种时间类型,不允许设置默认值为 当前时间戳 // 这3种时间类型,不允许设置默认值为 当前时间戳
if (['TIME', 'DATE', 'YEAR'].includes(it.type)) { if (['TIME', 'DATE', 'YEAR'].includes(it.type)) {
if (it.default.toUpperCase() === 'CURRENT_TIMESTAMP') { if (it.default.toUpperCase() === 'CURRENT_TIMESTAMP') {
it.default = '' delete it.default
} }
} }
defaultVal = it.default ? `DEFAULT ${it.default}` : '' if (it.default || it.default === 0) {
defaultVal = 'DEFAULT ' + it.default
}
// 非主键下, 设置了unique & index时,都为索引 // 非主键下, 设置了unique & index时,都为索引
if (!it.primary) { if (!it.primary) {

View File

@ -1,6 +1,6 @@
{ {
"name": "mysqli", "name": "mysqli",
"version": "3.0.8", "version": "3.0.9",
"description": "MySQL tool", "description": "MySQL tool",
"main": "index.js", "main": "index.js",
"dependencies": { "dependencies": {