数据库迁移
Ebean 已内置支持生成数据库迁移并运行它们
生成数据库迁移
请注意,我们可以使用 ebeaninit 将 GenerateDbMigration(以下代码)添加到项目中。
在 src/test/java
中添加以下代码以生成迁移。
在 src/test/kotlin
中添加以下代码以生成迁移。
要生成数据库迁移,我们运行此 main 方法。迁移 DDL 将根据模型的更改(例如,更改表添加列等)基于给定平台生成。
package main;
import io.ebean.annotation.Platform;
import io.ebean.dbmigration.DbMigration;
import java.io.IOException;
public class GenerateDbMigration {
/**
* Generate the DDL for the next DB migration.
*/
public static void main(String[] args) throws IOException {
DbMigration dbMigration = DbMigration.create();
dbMigration.setPlatform(Platform.POSTGRES);
dbMigration.generateMigration();
}
}
package main
import io.ebean.annotation.Platform
import io.ebean.dbmigration.DbMigration
/**
* Generate the DDL for the next DB migration.
*/
fun main(args : Array<!String>) {
// requires jvmTarget 1.8
val dbMigration = DbMigration.create()
dbMigration.setPlatform(Platform.POSTGRES)
dbMigration.generateMigration()
}
当我们完成一些工作并认为它已准备好发布时,我们会手动运行它。
运行生成将在离线模式下启动 Ebean,执行模型的 DIFF 并生成迁移 DDL 脚本。
运行迁移
要使用内置迁移运行器运行迁移,请将 ebean.migration.run
设置为 true。
在 application.yaml 中
## run migrations when the Ebean starts
ebean:
migration:
run: true
使用 ebean.migration.run=true
,当 Ebean 启动时,它将查看迁移并运行任何需要运行的迁移。迁移运行器默认情况下将创建一个名为 db_migration
的表,该表保存已运行迁移的元数据,并在成功执行迁移时插入到此表中。