jfinal-flyway 数据脚本升级插件,伴随应用的升级自动升级或回滚数据库

原创
2014/09/12 12:54
阅读数 1.4K

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

部分内容借鉴了网络资料


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
3 收藏
2
分享
返回顶部
顶部