提交 fed658a4 编写于 作者: ibizdev's avatar ibizdev

zhouweidong@lab.ibiz5.com 部署微服务应用

上级 7d26ee18
## v7.0.0-alpha.15 [2020-7-23]
### Bug修复
修复修复数值框错误问题
修复表单通知关系界面上下文、表单数据先后顺序
修复实体行为执行前、后逻辑增加行为逻辑者判断
修复表单loadDraft清空表单临时主键
修复数据图表月份显示问题
修复首页横向菜单呈现
修复树视图部件国际化问题
### 功能新增及优化
#### 模板
新增表单属性值规则(正则式规则、数值范围规则、字符长度规则、常规规则、系统值规则、规则组)支持
新增数据选择、自动填充编辑器自填模式排序
新增表单传入关系界面临时模式
新增数据选择编辑器自填模式界面行为组(662)
新增向导添加数据
优化向导面板成功提示、忽略版本检查
优化导航类部件选中事件
优化表格操作列分隔符问题
优化表单准备工作流数据,填充未存库数据
#### 基础文件
修复数值框firstElementChild异常问题
修复图表视图无搜索表单加载数据问题
修复表格视图标题问题
更新view-design组件库的版本,修复面板分割组件
优化关系界面内嵌表格视图先行通知,再保存表单逻辑
优化部门选择、组织选择编辑器的样式
优化导入文件逻辑
新增关系界面增加无临时数据模式判断
新增数据选择、自动填充编辑器自填模式排序
新增数据选择编辑器自填模式界面行为组(662)
## v7.0.0-alpha.14 [2020-7-18] ## v7.0.0-alpha.14 [2020-7-18]
### Bug修复 ### Bug修复
......
...@@ -6,12 +6,16 @@ ...@@ -6,12 +6,16 @@
:viewdata="viewdata" :viewdata="viewdata"
:viewparam="viewparam" :viewparam="viewparam"
:viewDefaultUsage="false" :viewDefaultUsage="false"
@viewdataschange="setValue(args)" @viewdataschange="setValue($event)"
style="height:100%;"> style="height:100%;">
</component> </component>
</div> </div>
<template v-if="placeholder"> <template v-if="placeholder">
<div v-if="value" class="app-embed-value">{{value}}</div> <div v-if="value" class="app-embed-value">
<span v-for="(item,index) in value" :key="index">
{{item}}
</span>
</div>
<div v-else class="app-embed-placeholder">{{placeholder}}</div> <div v-else class="app-embed-placeholder">{{placeholder}}</div>
</template> </template>
</div> </div>
...@@ -174,8 +178,8 @@ export default class AppEmbedPicker extends Vue { ...@@ -174,8 +178,8 @@ export default class AppEmbedPicker extends Vue {
} }
let arg: any = {}; let arg: any = {};
// 合并视图上下文参数和视图参数 // 合并视图上下文参数和视图参数
let param: any = JSON.parse(JSON.stringify(this.viewparams)); arg.param = JSON.parse(JSON.stringify(this.viewparams));
let context: any = JSON.parse(JSON.stringify(this.context)); arg.context = JSON.parse(JSON.stringify(this.context));
// 附加参数处理 // 附加参数处理
if (this.localContext && Object.keys(this.localContext).length >0) { if (this.localContext && Object.keys(this.localContext).length >0) {
let _context = this.$util.computedNavData(this.data,arg.context,arg.param,this.localContext); let _context = this.$util.computedNavData(this.data,arg.context,arg.param,this.localContext);
...@@ -185,8 +189,8 @@ export default class AppEmbedPicker extends Vue { ...@@ -185,8 +189,8 @@ export default class AppEmbedPicker extends Vue {
let _param = this.$util.computedNavData(this.data,arg.param,arg.param,this.localParam); let _param = this.$util.computedNavData(this.data,arg.param,arg.param,this.localParam);
Object.assign(arg.param,_param); Object.assign(arg.param,_param);
} }
this.viewdata = JSON.stringify(context); this.viewdata = JSON.stringify(arg.context);
this.viewparam = JSON.stringify(param); this.viewparam = JSON.stringify(arg.param);
} }
/** /**
...@@ -243,11 +247,21 @@ export default class AppEmbedPicker extends Vue { ...@@ -243,11 +247,21 @@ export default class AppEmbedPicker extends Vue {
* @memberof AppEmbedPicker * @memberof AppEmbedPicker
*/ */
public setValue(item: any) { public setValue(item: any) {
if (this.valueItem) { let selectsrfkey: Array<any> = [];
this.$emit('formitemvaluechange', { name: this.valueItem, value: item[0].srfkey }); let selectsrfmajortext: Array<any> = [];
} if(item && Array.isArray(item)){
if (this.name) { item.forEach((select: any)=>{
this.$emit('formitemvaluechange', { name: this.name, value: item[0].srfmajortext }); selectsrfkey.push(select.srfkey);
selectsrfmajortext.push(select.srfmajortext);
})
if (this.valueItem) {
let value = selectsrfkey.length > 0 ? selectsrfkey : '';
this.$emit('formitemvaluechange', { name: this.valueItem, value: value });
}
if (this.name) {
let value = selectsrfmajortext.length > 0 ? selectsrfmajortext : '';
this.$emit('formitemvaluechange', { name: this.name, value: value });
}
} }
} }
......
...@@ -333,7 +333,9 @@ export default class AppFormDRUIPart extends Vue { ...@@ -333,7 +333,9 @@ export default class AppFormDRUIPart extends Vue {
// 表单保存之前 // 表单保存之前
if (Object.is($event.type, 'beforesave')) { if (Object.is($event.type, 'beforesave')) {
// 支持嵌入视图类型:嵌入视图本身抛drdatasaved的视图,如:DEMEDITVIEW9,DEGRIDVIEW9,DEGRIDVIEW等 // 支持嵌入视图类型:嵌入视图本身抛drdatasaved的视图,如:DEMEDITVIEW9,DEGRIDVIEW9,DEGRIDVIEW等
// 从数据模式直接通知保存 // 从数据模式直接通知保存
// 临时补充,todo
if(Object.is(this.refviewtype,'DEMEDITVIEW9') || Object.is(this.refviewtype,'DEGRIDVIEW9') || Object.is(this.refviewtype,'DEGRIDVIEW')){
if(this.tempMode && Object.is(this.tempMode,"2")){ if(this.tempMode && Object.is(this.tempMode,"2")){
this.formDruipart.next({action:'save',data:$event.data}); this.formDruipart.next({action:'save',data:$event.data});
}else{ }else{
...@@ -343,6 +345,9 @@ export default class AppFormDRUIPart extends Vue { ...@@ -343,6 +345,9 @@ export default class AppFormDRUIPart extends Vue {
this.$emit('drdatasaved',$event); this.$emit('drdatasaved',$event);
} }
} }
}else{
this.$emit('drdatasaved',$event);
}
} }
// 表单保存完成 // 表单保存完成
if (Object.is($event.type, 'save')) { if (Object.is($event.type, 'save')) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="app-menu-item"> <div class="app-menu-item">
<template v-for="item in menus"> <template v-for="item in menus">
<template v-if="item.items && Array.isArray(item.items) && item.items.length > 0"> <template v-if="item.items && Array.isArray(item.items) && item.items.length > 0">
<el-submenu :class="{'isCollpase' : appMenuCollapseFlag}" v-show="!item.hidden" :index="item.name" :popper-class="popperClass" :key="item.id"> <el-submenu :class="[{'isCollpase' : appMenuCollapseFlag},item.textcls]" v-show="!item.hidden" :index="item.name" :popper-class="popperClass" :key="item.id">
<template slot='title'> <template slot='title'>
<template v-if="item.icon && item.icon != ''"> <template v-if="item.icon && item.icon != ''">
<img :src="item.icon" class='app-menu-icon' /> <img :src="item.icon" class='app-menu-icon' />
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</template> </template>
<template v-else> <template v-else>
<template v-if="item.type =='MENUITEM'"> <template v-if="item.type =='MENUITEM'">
<el-menu-item :class="{'isFirst' : isFirst}" v-show="!item.hidden" :index="item.name" :key="item.id"> <el-menu-item :class="[{'isFirst' : isFirst},item.textcls]" v-show="!item.hidden" :index="item.name" :key="item.id">
<template v-if="item.icon && item.icon != ''"> <template v-if="item.icon && item.icon != ''">
<img :src="item.icon" class='app-menu-icon' /> <img :src="item.icon" class='app-menu-icon' />
<span v-if="isCollapse" ref="circleText" :class="{'app-menu-circle' : appMenuCollapseFlag, 'text' : true}" :title="$t(`app.menus.${ctrlName}.${item.name}`)">{{$t(`app.menus.${ctrlName}.${item.name}`)}}</span> <span v-if="isCollapse" ref="circleText" :class="{'app-menu-circle' : appMenuCollapseFlag, 'text' : true}" :title="$t(`app.menus.${ctrlName}.${item.name}`)">{{$t(`app.menus.${ctrlName}.${item.name}`)}}</span>
......
...@@ -295,9 +295,6 @@ export default class AppPicker extends Vue { ...@@ -295,9 +295,6 @@ export default class AppPicker extends Vue {
* @memberof AppPicker * @memberof AppPicker
*/ */
public created() { public created() {
if(Object.is(this.editortype, 'dropdown')){
this.onSearch("", null, true);
}
if(!Object.is(this.editortype, 'pickup-no-ac') && !Object.is(this.editortype, 'dropdown')){ if(!Object.is(this.editortype, 'pickup-no-ac') && !Object.is(this.editortype, 'dropdown')){
this.curvalue = this.value; this.curvalue = this.value;
} }
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<template v-else> <template v-else>
<i class='fa fa-cogs app-menu-icon'></i> <i class='fa fa-cogs app-menu-icon'></i>
</template> </template>
<span class='text' :title="$t('app.menus.appindexview.' + item0.name)">{{$t('app.menus.appindexview.' + item0.name)}}</span> <span class='text' :title="$t('app.menus.main.' + item0.name)">{{$t('app.menus.main.' + item0.name)}}</span>
</template> </template>
<template v-for="item1 in item0.items"> <template v-for="item1 in item0.items">
<template v-if="item1.items && Array.isArray(item1.items) && item1.items.length > 0"> <template v-if="item1.items && Array.isArray(item1.items) && item1.items.length > 0">
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<template v-else-if="item1.iconcls && item1.iconcls != ''"> <template v-else-if="item1.iconcls && item1.iconcls != ''">
<i :class="[item1.iconcls, 'app-menu-icon']"></i> <i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template> </template>
<span class='text' :title="$t('app.menus.appindexview.' + item1.name)">{{$t('app.menus.appindexview.' + item1.name)}}</span> <span class='text' :title="$t('app.menus.main.' + item1.name)">{{$t('app.menus.main.' + item1.name)}}</span>
</template> </template>
<template v-for="item2 in item1.items"> <template v-for="item2 in item1.items">
<template v-if="item2.type =='MENUITEM'"> <template v-if="item2.type =='MENUITEM'">
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<i :class="[item2.iconcls, 'app-menu-icon']"></i> <i :class="[item2.iconcls, 'app-menu-icon']"></i>
</template> </template>
<template slot="title"> <template slot="title">
<span class="text" :title="$t('app.menus.appindexview.' + item2.name)">{{$t('app.menus.appindexview.' + item2.name)}}</span> <span class="text" :title="$t('app.menus.main.' + item2.name)">{{$t('app.menus.main.' + item2.name)}}</span>
<template v-if="counterdata && counterdata[item2.counterid] && counterdata[item2.counterid] > 0"> <template v-if="counterdata && counterdata[item2.counterid] && counterdata[item2.counterid] > 0">
<span class="pull-right"> <span class="pull-right">
<badge :count="counterdata[item2.counterid]" :overflow-count="9999"></badge> <badge :count="counterdata[item2.counterid]" :overflow-count="9999"></badge>
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<i :class="[item1.iconcls, 'app-menu-icon']"></i> <i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template> </template>
<template slot="title"> <template slot="title">
<span class="text" :title="$t('app.menus.appindexview.' + item1.name)">{{$t('app.menus.appindexview.' + item1.name)}} </span> <span class="text" :title="$t('app.menus.main.' + item1.name)">{{$t('app.menus.main.' + item1.name)}} </span>
<template v-if="counterdata && counterdata[item1.counterid] && counterdata[item1.counterid] > 0"> <template v-if="counterdata && counterdata[item1.counterid] && counterdata[item1.counterid] > 0">
<span class="pull-right"> <span class="pull-right">
<badge :count="counterdata[item1.counterid]" :overflow-count="9999"></badge> <badge :count="counterdata[item1.counterid]" :overflow-count="9999"></badge>
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
<i class='fa fa-cogs app-menu-icon'></i> <i class='fa fa-cogs app-menu-icon'></i>
</template> </template>
<template slot="title"> <template slot="title">
<span class="text" :title="$t('app.menus.appindexview.' + item0.name)">{{$t('app.menus.appindexview.' + item0.name)}}</span> <span class="text" :title="$t('app.menus.main.' + item0.name)">{{$t('app.menus.main.' + item0.name)}}</span>
<template v-if="counterdata && counterdata[item0.counterid] && counterdata[item0.counterid] > 0"> <template v-if="counterdata && counterdata[item0.counterid] && counterdata[item0.counterid] > 0">
<span class="pull-right"> <span class="pull-right">
<badge :count="counterdata[item0.counterid]" :overflow-count="9999"></badge> <badge :count="counterdata[item0.counterid]" :overflow-count="9999"></badge>
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
</template> </template>
</template> </template>
</template> </template>
<app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'appindexview'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item> <app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'main'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu> </el-menu>
</div> </div>
</template> </template>
......
...@@ -37,6 +37,11 @@ ...@@ -37,6 +37,11 @@
git clone -b master $para2 ibzuaa/ git clone -b master $para2 ibzuaa/
export NODE_OPTIONS=--max-old-space-size=4096 export NODE_OPTIONS=--max-old-space-size=4096
cd ibzuaa/ cd ibzuaa/
mvn clean package -Pweb
cd ibzuaa-app/ibzuaa-app-web
mvn -Pweb docker:build
mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzuaa-app-web.yaml ibzlab-rt --with-registry-auth
</command> </command>
</hudson.tasks.Shell> </hudson.tasks.Shell>
</builders> </builders>
......
...@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \ ...@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \ sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzuaa-app-web.jar java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzuaa-app-web.jar
EXPOSE 8080 EXPOSE 30002
ADD ibzuaa-app-web.jar /ibzuaa-app-web.jar ADD ibzuaa-app-web.jar /ibzuaa-app-web.jar
...@@ -3,9 +3,24 @@ services: ...@@ -3,9 +3,24 @@ services:
ibzuaa-app-web: ibzuaa-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzuaa-app-web:latest image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzuaa-app-web:latest
ports: ports:
- "8080:8080" - "30002:30002"
networks: networks:
- agent_network - agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
- SERVER_PORT=30002
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.102.211:8848
- SPRING_REDIS_HOST=172.16.100.243
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_DATABASE=0
- SPRING_DATASOURCE_USERNAME=a_A_5d9d78509
- SPRING_DATASOURCE_PASSWORD=@6dEfb3@
- SPRING_DATASOURCE_URL=jdbc:mysql://172.16.180.232:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_DEFAULTSCHEMA=a_A_5d9d78509
- ABC=1
- DEC=3
- NACOS=172.16.102.211:8848
deploy: deploy:
resources: resources:
limits: limits:
......
...@@ -32,4 +32,3 @@ public class SysAppSearchContext extends SearchContextBase { ...@@ -32,4 +32,3 @@ public class SysAppSearchContext extends SearchContextBase {
} }
...@@ -97,4 +97,3 @@ public class SysAuthLogSearchContext extends QueryWrapperContext<SysAuthLog> { ...@@ -97,4 +97,3 @@ public class SysAuthLogSearchContext extends QueryWrapperContext<SysAuthLog> {
...@@ -51,4 +51,3 @@ public class SysPSSystemSearchContext extends QueryWrapperContext<SysPSSystem> { ...@@ -51,4 +51,3 @@ public class SysPSSystemSearchContext extends QueryWrapperContext<SysPSSystem> {
...@@ -72,4 +72,3 @@ public class SysPermissionSearchContext extends QueryWrapperContext<SysPermissio ...@@ -72,4 +72,3 @@ public class SysPermissionSearchContext extends QueryWrapperContext<SysPermissio
...@@ -86,4 +86,3 @@ public class SysRolePermissionSearchContext extends QueryWrapperContext<SysRoleP ...@@ -86,4 +86,3 @@ public class SysRolePermissionSearchContext extends QueryWrapperContext<SysRoleP
...@@ -90,4 +90,3 @@ public class SysRoleSearchContext extends QueryWrapperContext<SysRole> { ...@@ -90,4 +90,3 @@ public class SysRoleSearchContext extends QueryWrapperContext<SysRole> {
...@@ -72,4 +72,3 @@ public class SysUserRoleSearchContext extends QueryWrapperContext<SysUserRole> { ...@@ -72,4 +72,3 @@ public class SysUserRoleSearchContext extends QueryWrapperContext<SysUserRole> {
...@@ -79,4 +79,3 @@ public class SysUserSearchContext extends QueryWrapperContext<SysUser> { ...@@ -79,4 +79,3 @@ public class SysUserSearchContext extends QueryWrapperContext<SysUser> {
!!!!模版产生代码错误:---- <?xml version="1.1" encoding="UTF-8" standalone="no"?>
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${dbinst.getUserName()} [in template "CODETEMPL_zh_CN" at line 28, column 24]
---- <!--输出实体[SYS_AUTHLOG]数据结构 -->
\ No newline at end of file <changeSet author="a_A_5d9d78509" id="tab-sys_authlog-40-1">
<createTable tableName="IBZAUTHLOG">
<column name="LOGID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_AUTHLOG_LOGID"/>
</column>
<column name="USERNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="PERSONNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="DOMAIN" remarks="" type="VARCHAR(100)">
</column>
<column name="AUTHTIME" remarks="" type="DATETIME">
</column>
<column name="IPADDR" remarks="" type="VARCHAR(100)">
</column>
<column name="MACADDR" remarks="" type="VARCHAR(100)">
</column>
<column name="USERAGENT" remarks="" type="VARCHAR(100)">
</column>
<column name="AUTHCODE" remarks="" type="VARCHAR(15)">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_PSSYSTEM]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_pssystem-39-2">
<createTable tableName="IBZPSSYSTEM">
<column name="PSSYSTEMID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_PSSYSTEM_PSSYSTEMID"/>
</column>
<column name="PSSYSTEMNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="SYSSTRUCTURE" remarks="" type="TEXT(1048576)">
</column>
<column name="APPS" remarks="" type="TEXT(1048576)">
</column>
<column name="MD5CHECK" remarks="" type="VARCHAR(100)">
</column>
<column name="SHOWORDER" remarks="" type="INT">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_PERMISSION]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_permission-219-3">
<createTable tableName="IBZPERMISSION">
<column name="SYS_PERMISSIONID" remarks="" type="VARCHAR(200)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_PERMISSION_SYS_PERMISSI"/>
</column>
<column name="SYS_PERMISSIONNAME" remarks="" type="VARCHAR(200)">
</column>
<column name="PERMISSIONTYPE" remarks="" type="VARCHAR(60)">
</column>
<column name="PSSYSTEMID" remarks="" type="VARCHAR(100)">
</column>
<column name="ENABLE" remarks="" type="INT">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_ROLE]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_role-116-4">
<createTable tableName="IBZROLE">
<column name="SYS_ROLEID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_ROLE_SYS_ROLEID"/>
</column>
<column name="SYS_ROLENAME" remarks="" type="VARCHAR(200)">
</column>
<column name="MEMO" remarks="" type="VARCHAR(100)">
</column>
<column name="PROLEID" remarks="" type="VARCHAR(100)">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_ROLE_PERMISSION]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_role_permission-98-5">
<createTable tableName="IBZROLE_PERMISSION">
<column name="SYS_ROLE_PERMISSIONID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_ROLE_PERMISSION_SYS_ROL"/>
</column>
<column name="SYS_ROLEID" remarks="" type="VARCHAR(100)">
</column>
<column name="SYS_PERMISSIONID" remarks="" type="VARCHAR(200)">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_USER_ROLE]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_user_role-72-6">
<createTable tableName="IBZUSER_ROLE">
<column name="SYS_USER_ROLEID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_USER_ROLE_SYS_USER_ROLE"/>
</column>
<column name="SYS_ROLEID" remarks="" type="VARCHAR(100)">
</column>
<column name="SYS_USERID" remarks="" type="VARCHAR(100)">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_AUTHLOG]外键关系 -->
<!--输出实体[SYS_PSSYSTEM]外键关系 -->
<!--输出实体[SYS_PERMISSION]外键关系 -->
<!--输出实体[SYS_ROLE]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-sys_role-116-7">
<addForeignKeyConstraint baseColumnNames="PROLEID" baseTableName="IBZROLE" constraintName="DER1N_SYS_ROLE_SYS_ROLE_PROLEI" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SYS_ROLEID" referencedTableName="IBZROLE" validate="true"/>
</changeSet>
<!--输出实体[SYS_ROLE_PERMISSION]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-sys_role_permission-98-8">
<addForeignKeyConstraint baseColumnNames="SYS_PERMISSIONID" baseTableName="IBZROLE_PERMISSION" constraintName="DER1N_SYS_ROLE_PERMISSION_SYS_" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SYS_PERMISSIONID" referencedTableName="IBZPERMISSION" validate="true"/>
</changeSet>
<!--输出实体[SYS_USER_ROLE]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-sys_user_role-72-10">
<addForeignKeyConstraint baseColumnNames="SYS_ROLEID" baseTableName="IBZUSER_ROLE" constraintName="DER1N_SYS_USER_ROLE_SYS_ROLE_S" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SYS_ROLEID" referencedTableName="IBZROLE" validate="true"/>
</changeSet>
</databaseChangeLog>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册