https://github.com/Dreampie/jfinal-flyway 动态的数据库脚本升级计划:
<dependency> <groupId>cn.dreampie</groupId> <artifactId>jfinal-flyway</artifactId> <version>${jfinal-flyway.version}</version> </dependency>
目前刚刚发布第一个版本0.1:
<jfinal-flyway.version>0.1</jfinal-flyway.version>
jfinal下的configPlugin使用:
//数据库版本控制插件 plugins.add(new FlywayPlugin());
application.properties添加数据库配置,default表示数据库的标识,可以为具体的数据库名称
devMode = true db.default.driver=org.h2.Driver db.default.url=jdbc:h2:file:./db/icedog db.default.user=sa db.default.password=file password icedog # Connection Pool settings db.default.poolInitialSize=10 db.default.poolMaxSize=20 db.default.connectionTimeoutMillis=1000 #In production mode, migration is done automatically if db.${dbName}.migration.auto #is set to be true in application.conf. Otherwise it failed to start when migration is needed. db.default.valid.clean=true db.default.migration.auto=true db.default.migration.initOnMigrate=true
在resource下面创建 db.migration.default (default对应数据库的标识)
创建以V1__descriptions.sql 格式的数据库脚本文件 V表示版本开始 1为版本号 可以为 1_1,1_2...等下划线相当于小数点,后面是两个下划线 之后是描述
插件启动之后会去验证这个版本的数据库脚本是否是已经执行,如果没有执行会运行该文件,数据库会生成一张表 schema_version来记录 各个版本的sql文件执行结果
注意 数据库需要优先存在,类似h2的数据库可以自动生成数据库文件的 不用建库文件
当你应用更新时,添加一个V1_1__descriptions.sql的升级脚本,项目发布启动时就会执行升级,不用麻烦的吧脚本文件导来导去
https://github.com/Dreampie?tab=repositories 目录下有多款插件:
cn.dreampie.jfinal-shiro https://github.com/Dreampie/jfinal-shiro shiro插件
cn.dreampie.jfinal-shiro-freemarker https://github.com/Dreampie/jfinal-shiro-freemarker shiro插件实现的freemarker标签库
cn.dreampie.jfinal-web https://github.com/Dreampie/jfinal-web 相关web插件,简洁model实现
cn.dreampie.jfinal-utils https://github.com/Dreampie/jfinal-utils 部分jfinal工具
cn.dreampie.jfinal-tablebind https://github.com/Dreampie/jfinal-tablebind jfinal的table自动绑定插件,支持多数据源
cn.dreampie.jfinal-flyway https://github.com/Dreampie/jfinal-flyway 数据库脚本升级插件,开发中升级应用时,使用脚本同步升级数据库或者回滚
cn.dreampie.jfinal-captcha https://github.com/Dreampie/jfinal-captcha 基于jfinal render的超简单验证吗插件
cn.dreampie.jfinal-quartz https://github.com/Dreampie/jfinal-quartz 基于jfinal 的quartz管理器
cn.dreampie.jfinal-sqlinxml https://github.com/Dreampie/jfinal-sqlinxml 基于jfinal 的类似ibatis的sql语句管理方案
cn.dreampie.jfinal-lesscss https://github.com/Dreampie/jfinal-lesscss java实现的lesscsss实时编译插件,可以由于jfinal
cn.dreampie.jfinal-coffeescript https://github.com/Dreampie/jfinal-coffeescript java实现的coffeescript实时编译插件,可以由于jfinal
cn.dreampie.jfinal-akka https://github.com/Dreampie/jfinal-akka java使用akka执行异步任务
cn.dreampie.jfinal-mailer https://github.com/Dreampie/jfinal-mailer 使用akka发布邮件的jfinal插件
cn.dreampie.jfinal-slf4j https://github.com/Dreampie/jfinal-slf4j 让jfinal使用slf4j的日志api
部分内容借鉴了网络资料