1.0.1 • Published 7 years ago

mysql-db-updater v1.0.1

Weekly downloads
2
License
ISC
Repository
-
Last release
7 years ago

mysql-db-updater

mysql数据库版本管理工具。

安装

npm install -g mysql-db-updater

使用

  1. 创建一个nodeJS项目
    npm init -y
  2. 初始化typescript
    tsc --init
  3. 创建一个配置文件mdu.conf.json
    {
        "path": {
            "backupdir": "./backup",
            "versiondir": "./versions",
            "mysqlbin": ""	//当mysql没有在环境变量时配置此选项
        },
        "mysql": {
            "host": "127.0.0.1",    // 默认 127.0.0.1
            "port": 3306,           // 默认 3306
            "user": "root",         // 可选
            "password": "123456",   // 可选
            "charset":"utf8mb4",    // 默认 utf8mb4
            "database": "main",     // 主数据库
            "test": "test"          // 用于测试的数据库, 
                                    // 在升级之前需要测试一下是否有错,从而避免升级到一半出错
        }
    }
  4. 安装必要依赖
    npm install mdu-types	//provide MDU class
  5. 编辑tsconfig.json
    {
        "compilerOptions":{
            "target": "esnext",
            "module": "commonjs",
            "lib": ["esnext"],
    	},
        "include": [
            "node_modules/mdu-types/index.d.ts"  //很重要
        ]
    }

命令

backup

备份数据库

resstore

从指定的.sql文件恢复数据库

versions

查看版本列表以及数据库当前版本

update

升级到指定版本,默认最新版本

test

升级前务必使用此命令测试错误

help

帮助文档

版本文件编写规则

版本文件是一个typescript文件,命名形如 v00001.ts

// 表示版本 0.1
export async function v_0_1(db: MDU) {
   //创建test表
   await db.mktable('test')
      .id()          // id主键
      .nameColumn()  // name 列
      .descColumn()  // desc 列
      .varchar('hello', 255, {require:true, comment:'列说明'})   //创建hello列
      .done()        // 调用done函数后开始创建
}

// 版本 0.2
export async function v_0_2(db: MDU) {
    // 添加一列到desc字段之后
	await db.uptable('test').addColumn('test', 'longtext', { order: { after: 'desc' } })
	//......
	//操作太多不列举
}