(4)FPQuant JHipster_使用数据库

来源:互联网 发布:nginx多端口配置 编辑:程序博客网 时间:2024/06/04 19:21

本文是对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。

JHipster使用Liquibase来管理数据库更新,将其存储到/src/main/resources/config/liquibase/目录下的配置文件中。有三种方式可以使用Liquibase:使用实体生成器、使用liquibase:diff Maven goal或手动更新配置文件。

用实体生成器更新数据库:

执行流程:

  • 运行实体生成器
  • 一个新的“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文件中,这样它就会在下次运行时启用。

0 0
原创粉丝点击