最初飞腾+麒麟+达梦+金蝶部署
信创机如果可以搭建Java、nodejs、redis、数据库的开发环境,部署就没问题,环境搭建和部署文档见下方
之前低代码只支持mysql方言,此次调整主要是对flowable的生成act表、低代码建表、配置表生成页面做了针对达梦数据库的兼容。此后部署别的数据库(可能客户会要求Oracle、SQL Server、人大金仓等)可以参考此文档修改记录进行数据库支持和sql方言调整。另外针对打war包、金蝶部署做了调整。
如果还没攻克多~~~~数据源~~~~,比较好的解决办法还是一个数据库一个分支,~~~~低代码~~~~就核心功能开发后镜像库推送git到别的数据库版本,因为数据库分支基本是新增包,所以一般不会有代码冲突,可以放心同步更新。
目前舍弃多数据源,采用一个数据源一套配置文件,在yml换配置直接可用。
修改记录(已完成)
一、启动报错
1、flowable的核心工程没达梦支持
AbstractEngineConfiguration 保留路径拉到本地重写,加上dm。(flowable只改了一个类,引用麻烦就放本地。
2、修改liquibase源码
新建DM8Database
重写fastFetchQuery
重写bulkFetchQuery
新增queryDameng方法
重写ChangeParameterMetaDataTest
liquibase改的文件较多,所以重新打新版本jar包在pom引用。
二、能正常启动之后一半页面报错
1、npm启动有一些菜单加载不出来是linux对启动文件数量做了限制
echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2、重写mybatisplus的拦截器过滤反引号,基本解决掉sql语句增删改查报错
3、执行DDL语句报错,在TableServiceImpl加上对数据源的判断,重写达梦的建表和修改表语句
(新增重新写mapper,删除列的语句直接改成了循环执行,修改也重写mapper循环执行)
4、数据库已有表 点配置表报错,mysql的information_schema.columns表专门用来存储列信息,DM没有
需要针对各数据库列存储特色重新整理列信息,重写mapper用新的sql能正常运行(目前已没有把数据库已有表拉进低代码配置的功能)
三、打包部署金蝶
1、在web模块下加war包配置,本地包依赖
2、低代码项目使用的undertow容器(中间件 类似tomcat),部署时有两个中间件
因此在pom文件下undertow加了provided,打war包不放入启动lib
3、打包部署后启动报错redis连接池与pool2版本不符,加入老版本redis依赖
4、金蝶在windows部署不能修改工作流设计
原因是windows复制流文件会在开头加入表示符破坏xml格式,导致工作流的源文件解析失败
四、打包部署东方通
问题基本和金蝶一致,war包问题不再赘述。要进行的操作有 改端口、改url上下文、对PUT和DELETE请求的支持。
麒麟操作系统部署
以下操作先sudo -i切换root用户再执行,文档里不再添加sudo授权
jdk和redis默认服务器有网,用包管理器来安装。没网就需要拷包配环境了。
升级包管理器
sudo apt-get update
允许打开的文件视图数(安装达梦或者nodejs启动前端可能会被限制,所以提前打开)
echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
关闭Kysec(开启Kysec可能会出现shell脚本或可执行程序无法运行等情况)
setstatus -p disable
打开Kysec(环境部署完成、端口整理好之后正式环境可以打开Kysec保证安全性)
security-switch --set default
jdk
sudo apt-get install openjdk-8-jdk
redis
sudo apt-get install redis
nodejs
把本地包传到服务器
tar -xvf node-v14.21.1-linux-arm64.tar.gz
mv node-v14.21.1-linux-arm64 /usr/local/node
环境变量添加 vi /etc/profile
export PATH=$PATH:/usr/local/node/bin
软链接
ln -s /usr/local/node/bin/node /usr/local/bin/
ln -s /usr/local/node/bin/npm /usr/local/bin/
暂用淘宝镜像/也可以直接把module包拷过来不用重新安装依赖
npm --registry registry.npm.taobao.org install
达梦数据库
把安装包传到服务器双击解压进入iso目录挂载
mount dm8_20221025_FTarm_kylin10_sp1_64.iso /mnt
cd /mnt
./DMInstall.bin
图形化安装弹出页面后一直下一步最终弹出初始化数据库
命令行只需./DMInstall.bin -i 按照提示设置时区路径即可安装
注意初始化的时候关闭大小写敏感 不出所料会初始化超时,这是因为新建表文件等过程结束后,一些东西由于权限问题需要管理员执行一遍,打开shell:
允许服务
systemctl enable DmServiceDMSERVER
允许dmdba角色操纵data文件
chown -R dmdba:dinstall /opt/dmdbms/data
启动服务
systemctl start DmServiceDMSERVER
金蝶
把金蝶压缩包解压到opt下,用新的license内容替换掉license.xml里的文件
vi /opt/AAS-V9.0/domains/mydomain/config/vm.options
将 apusic.http.disabledMethods=DELETE,PUT,TRACE,OPTIONS 注释掉
vi /opt/AAS-V9.0/domains/mydomain/config/apusic.conf
将 6888改成自己想要的端口比如8888
将war包放在/opt/AAS-V9.0/domains/mydomain/applications里
/opt/AAS-V9.0/domains/mydomain/bin目录下启动
./startapusic
初次启动需要设置密码,开发密码建议Admin1234,启动后会对应用生成配置文件
vi /opt/AAS-V9.0/domains/mydomain/config/server.xml
将default的base-context改成别的,例如"/a"
将easycode-web.war的base-context改成"/"
这样就保留了低代码之前没有上下文的设定(端口和上下文可根据需求改,前后端能连接即可)
war包部署生成代码后不能热加载
热部署文件DynamicJavaCompiler里,linux部署加载jar包用的是冒号需要改。
指定路径,目前写成了从yml文件加载,一个是biz路径,一个是文件war包里的lib路径。
把lombok的 provided 去掉即可打包进lib,在webapp下将java的tools包放进去也可打包进lib,这样就可以把热加载需要的jar包都集齐在lib路径下。
easycode
hot-load:
file-path: /home/zhangsan/Desktop/TongWeb7.0.4.7_Enterprise_Linux/bin/easycode-biz
lib-path: /home/zhangsan/Desktop/TongWeb7.0.4.7_Enterprise_Linux/deployment/easycode-web/WEB-INF/lib
东方通可以用相对路径,金蝶会报错,所以还用的绝对路径。
数据库兼容补丁化
按照低代码目前状况
可以将做过代码修改的包重命名也deploy到本地仓库,用mysql就正常用,用兼容别的库就引这些包