本文是对JHipster开发文档的部分翻译,供个人学习之用。
原文链接:https://jhipster.github.io/development/
1.运行数据库
如果你使用非嵌入式的数据库如MySQL、MariaDB、PostgreSQL、MSSQL、MongoDB或Cassandra,你需要安装并配置数据库。
最简单和推荐的配合JHipster的方式就是使用Docker组件。(另外再详细讲)
如果你希望手动安装和配置数据库,不要忘记相应地在src/main/resources/config/application-*/yml中配置Spring Boot的属性,例如数据库的URL、用户名和密码。
在开发中使用h2数据库:
如果选择了H2数据库,你将会有一个内存数据库在应用中运行,你可以通过默认的http://localhost:8080/h2-console来访问它的控制台。
为了连接上数据库,选择预配置的选项:
- Driver Class:org.h2.Driver
- JDBC URL:jdbc:h2:mem:jhipster
- User name:
- Password:
在开发中使用MySQL、MariaDB或PostgreSQL:
这要比使用H2更复杂一些,但是有一些好处:
- 数据可以在应用重启后仍然存在
- 应用会启动地更快
- 可以使用./mvnw liquibase:diff 这个goal
2.更新数据库
如果你添加或修改了一个JPA实体,你需要更新你的数据库schema。
用实体生成器更新数据库:
执行流程:
- 运行实体生成器
- 一个新的“change log”将会在src/main/resources/config/liquibase/changelog目录下创建,并且会自动加入到你的src/main/resources/config/liquibase/master.xml文件中
- 查看change log,它将会在你下次运行应用时启用
用Maven的liquibase:diff这个goal来更新数据库:
如果你在开发中选择使用MySQL、MariaDB、PostgreSQL,你可以使用./mvnw liquibase:diff 来自动生成changelog
如果你运行H2的基于硬盘的持久化,这个流程可能并不很适合,但是你可以试着使用它。
Liquibase Hibernate是一个配置在你的pom.xml中的Maven插件,和你的Spring application.yml文件独立。所以如果你改变了默认的设置,你需要同时改动这两份文件。
执行流程:
- 修改JPA实体
- 编译应用(只对已编译的java代码有效,所以不能忘记编译)
- 运行./mvnw liquibase:diff(或./mvnw compile liquibase:diff 来编译之前的操作)
- 新的"change log"将会在src/main/resources/config/liquibase/changelog目录下创建
- 查看change log并将其加入到你的src/main/resources/config/liquibase/master.xml文件中,这样在你下次运行时它就会启用
如果你使用Gradle,可以运行./gradlew liquibaseDiffChangelog来执行相同的流程,如果有必要,在liquibase.gradle中更改数据库的配置。
手动编辑change log来更新数据库:
如果你希望手动更新数据库,这里是执行流程:
- 修改JPA实体
- 在src/main/resources/config/liquibase/changelog目录下创建新的changelog,该文件的前缀是他们的创建时间(yyyyMMddHHmmss),标题描述他们具体是做什么的,比如:20141006152300_added_price_to_product.xml
- 添加changelog文件到src/main/resources/config/liquibase/master.xml文件中,这样它就会在下次运行时启用。