数据库迁移
配置
数据库迁移(Migration)默认是关闭的,需要通过配置属性进行打开。
修改app/config.json
:
{
"db": {
"migrate": true
}
}
数据库模型更新
和直接使用flyway不同的是,jmms在执行数据库迁移时会首先自动创建新增加的表、字段、外键、索引等数据库对象,然后再执行迁移脚本。
jmms不会修改已有的数据库对象,也不会执行删除操作。
注意,对于不允许为null
并且没有默认值的字段,jmms在执行创建字段脚本时会自动修改为null
。
可以认为jmms自动更新数据库默认的过程是安全的。
数据库初始化
首次执行数据库迁移时,会在数据库中自动创建表flyway_schema_history
并设置初始版本为0
。
创建app/migration/V0_1__Init.sql
(通过jmms create project创建的工程会自动创建这个文件)。
在V0_1__Init.sql
中编写初始化数据的SQL脚本。
数据库迭代更新
在app/migration
目录中按flyway的规则创建不同版本的SQL脚本文件,在启动时会按版本自动执行。
比如第二次更新可以创建app/migration/V0_2__Upgrade.sql
。