hec-panda-dev_总结_02_liquibase建表流程

一、前言

 

二、建表流程

1.写脚本

package com.hand.hec.panda.db

import com.hand.hap.liquibase.MigrationHelper

def mhi = MigrationHelper.getInstance()
dbType = mhi.dbType()
databaseChangeLog(logicalFilePath: "2018-09-06-panda-script-init-table-migration.groovy") {

    changeSet(author: "ray", id: "20180817-SYS_SCRIPT_B") {
        //序列
        if(mhi.isDbType('oracle') || mhi.isDbType('hana') || mhi.isDbType('postgresql')){
            createSequence(sequenceName: 'SYS_SCRIPT_B_S', startValue:"10001")
        }

        createTable(tableName: "SYS_SCRIPT_B") {
             //主键
            if(mhi.isDbType('oracle') || mhi.isDbType('hana') || mhi.isDbType('postgresql')){
                column(name:"SCRIPT_ID",type:"bigint",remarks:"nashorn脚本ID"){
                    constraints(nullable: "false", primaryKey: "true",primaryKeyName: "SYS_SCRIPT_B_PK")
                }
            }else {
                column(name:"SCRIPT_ID",type:"bigint",autoIncrement: "true", startWith:"10001",remarks:"nashorn脚本ID"){
                    constraints(nullable: "false", primaryKey: "true",primaryKeyName: "SYS_SCRIPT_B_PK")
                }
            }

            column(name: "SCRIPT_CODE", type:"nvarchar(30)", remarks: "脚本代码") {
                constraints(nullable: "false",unique:"true",uniqueConstraintName:"SYS_SCRIPT_B_U1")
            }

            column(name: "SCRIPT_NAME", type:"nvarchar(30)", remarks: "脚本名称") {
                constraints(nullable: "false")
            }

            column(name: "SCRIPT_PATH", type: 'nvarchar(64)', remarks: "脚本文件路径")

            column(name: "SCRIPT_CONTENT", type: 'text', remarks: "脚本内容")

            column(name: "DESCRIPTION", type: 'nvarchar(240)', remarks: "描述")
            column(name: "ENABLED_FLAG", type: 'nvarchar(1)', remarks: "启用标志")
            column(name: "DELETED_FLAG", type: 'nvarchar(1)', remarks: "删除标志")
            column(name: "CLIENT_ID", type: 'bigint', remarks: "租户ID")
            column(name: "OBJECT_VERSION_NUMBER", type: "BIGINT", defaultValue: "1")
            column(name: "REQUEST_ID", type: "bigint", defaultValue: "-1")
            column(name: "PROGRAM_ID", type: "bigint", defaultValue: "-1")
            column(name: "CREATED_BY", type: "bigint", defaultValue: "-1")
            column(name: "CREATION_DATE", type: "datetime", defaultValueComputed: "CURRENT_TIMESTAMP")
            column(name: "LAST_UPDATED_BY", type: "bigint", defaultValue: "-1")
            column(name: "LAST_UPDATE_DATE", type: "datetime", defaultValueComputed: "CURRENT_TIMESTAMP")
            column(name: "LAST_UPDATE_LOGIN", type: "bigint", defaultValue: "-1")
            column(name: "ATTRIBUTE_CATEGORY", type: "nvarchar(30)")
            column(name: "ATTRIBUTE1", type: "nvarchar(240)")
            column(name: "ATTRIBUTE2", type: "nvarchar(240)")
            column(name: "ATTRIBUTE3", type: "nvarchar(240)")
            column(name: "ATTRIBUTE4", type: "nvarchar(240)")
            column(name: "ATTRIBUTE5", type: "nvarchar(240)")
            column(name: "ATTRIBUTE6", type: "nvarchar(240)")
            column(name: "ATTRIBUTE7", type: "nvarchar(240)")
            column(name: "ATTRIBUTE8", type: "nvarchar(240)")
            column(name: "ATTRIBUTE9", type: "nvarchar(240)")
            column(name: "ATTRIBUTE10", type: "nvarchar(240)")
            column(name: "ATTRIBUTE11", type: "nvarchar(240)")
            column(name: "ATTRIBUTE12", type: "nvarchar(240)")
            column(name: "ATTRIBUTE13", type: "nvarchar(240)")
            column(name: "ATTRIBUTE14", type: "nvarchar(240)")
            column(name: "ATTRIBUTE15", type: "nvarchar(240)")
            column(name: "ATTRIBUTE16", type: "nvarchar(240)")
            column(name: "ATTRIBUTE17", type: "nvarchar(240)")
            column(name: "ATTRIBUTE18", type: "nvarchar(240)")
            column(name: "ATTRIBUTE19", type: "nvarchar(240)")
            column(name: "ATTRIBUTE20", type: "nvarchar(240)")
        }

        createTable(tableName: "SYS_SCRIPT_B_TL") {
            column(name:"CODE_ID",type:"bigint",remarks: "nashorn脚本ID"){
                constraints(nullable: "false", primaryKey: "true")
            }
            column(name:"LANG",type:"varchar(10)",remarks: "语言"){
                constraints(nullable: "false", primaryKey: "true")
            }
            column(name:"DESCRIPTION",type:"varchar(240)",remarks: "脚本描述")
            column(name:"OBJECT_VERSION_NUMBER",type:"BIGINT",defaultValue: "1")
            column(name: "REQUEST_ID", type: "bigint", defaultValue : "-1")
            column(name: "PROGRAM_ID", type: "bigint", defaultValue : "-1")
            column(name: "CREATED_BY", type: "bigint", defaultValue : "-1")
            column(name: "CREATION_DATE", type: "datetime", defaultValueComputed : "CURRENT_TIMESTAMP")
            column(name: "LAST_UPDATED_BY", type: "bigint", defaultValue : "-1")
            column(name: "LAST_UPDATE_DATE", type: "datetime", defaultValueComputed : "CURRENT_TIMESTAMP")
            column(name: "LAST_UPDATE_LOGIN", type: "bigint", defaultValue : "-1")
            column(name:"ATTRIBUTE_CATEGORY",type:"varchar(30)")
            column(name:"ATTRIBUTE1",type:"varchar(240)")
            column(name:"ATTRIBUTE2",type:"varchar(240)")
            column(name:"ATTRIBUTE3",type:"varchar(240)")
            column(name:"ATTRIBUTE4",type:"varchar(240)")
            column(name:"ATTRIBUTE5",type:"varchar(240)")
            column(name:"ATTRIBUTE6",type:"varchar(240)")
            column(name:"ATTRIBUTE7",type:"varchar(240)")
            column(name:"ATTRIBUTE8",type:"varchar(240)")
            column(name:"ATTRIBUTE9",type:"varchar(240)")
            column(name:"ATTRIBUTE10",type:"varchar(240)")
            column(name:"ATTRIBUTE11",type:"varchar(240)")
            column(name:"ATTRIBUTE12",type:"varchar(240)")
            column(name:"ATTRIBUTE13",type:"varchar(240)")
            column(name:"ATTRIBUTE14",type:"varchar(240)")
            column(name:"ATTRIBUTE15",type:"varchar(240)")
        }

    }

}
View Code

 

2.执行mvn命令

在项目根目录执行如下命令

mvn process-resources -D skipLiquibaseRun=false -D db.driver=org.postgresql.Driver -D db.url=jdbc:postgresql://192.168.100.90:90/haha_dev -D db.user=hahga_dev -D db.password=hahadev

 

 

三、脚本要点

1.脚本结构

databaseChangeLog ( logicalFilePath ){
       changeSet( author 、id){
              createSequence
              createTable( tableName : _B ){
                     primaryKey
                     columns
              }

              createTable( tableName : _TL ){
                     primaryKey
                     columns
              }
       }


}

 

2.创建序列

  //序列
        if(mhi.isDbType('oracle') || mhi.isDbType('hana') || mhi.isDbType('postgresql')){
            createSequence(sequenceName: 'SYS_SCRIPT_B_S', startValue:"10001")
        }

 

3.创建主键

             //主键
            if(mhi.isDbType('oracle') || mhi.isDbType('hana') || mhi.isDbType('postgresql')){
                column(name:"SCRIPT_ID",type:"bigint",remarks:"nashorn脚本ID"){
                    constraints(nullable: "false", primaryKey: "true",primaryKeyName: "SYS_SCRIPT_B_PK")
                }
            }else {
                column(name:"SCRIPT_ID",type:"bigint",autoIncrement: "true", startWith:"10001",remarks:"nashorn脚本ID"){
                    constraints(nullable: "false", primaryKey: "true",primaryKeyName: "SYS_SCRIPT_B_PK")
                }
            }

 

4.唯一索引

            column(name: "SCRIPT_CODE", type:"nvarchar(30)", remarks: "脚本代码") {
                constraints(nullable: "false",unique:"true",uniqueConstraintName:"SYS_SCRIPT_B_U1")
            }

 

 

 

 

 

     

 

 

 

 

 

三、参考资料

 

posted @ 2018-09-06 16:44  shirayner  阅读(745)  评论(0)    收藏  举报