【Liquibase】数据库创建和表定义更改
创建新的起始项目
选择Liquibase和MySQL

将DB的信息放入application.properties文件中。
在MySQL中创建一个名为”testdatabase”的数据库。
spring.datasource.url=jdbc:mysql://localhost:3306/testDataBase?serverTimezone=UTC&createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=system
spring.jpa.database=MYSQL
spring.liquibase.change-log=classpath:db/db.changelog-master.yaml
添加构建的依赖关系
在build.gradle的dependencies中添加Spring Data JPA
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.liquibase:liquibase-core'
runtimeOnly 'mysql:mysql-connector-java'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}
创建一个最先读取的 YAML 文件。
将db.changelog-master.yaml文件放在Sample\src\main\resources\db文件夹中(文件名写在application.properties中)。在文件中写入db.changelog目录下的文件名。
databaseChangeLog:
- include:
file: db/changelog/a.yaml
这样就会在db.changelog目录下自动生成yaml文件
表格定义
我們將在剛剛自动生成的YAML文件中記錄表格定義。
databaseChangeLog:
- changeSet:
id: 1
author: aaa
changes:
- createTable:
tableName: user
columns:
- column:
name: id
type: int
autoIncrement: true
constraints:
primaryKey: true
nullable: false
- column:
name: firstname
type: varchar(50)
- column:
name: lastname
type: varchar(50)
constraints:
nullable: false
- column:
name: state
type: char(2)
※在yaml文件中,缩进必须使用半角空格
执行


如果表格定义发生变化
◆添加列
在db.changelog-master.yaml中添加文件名
databaseChangeLog:
- include:
file: db/changelog/a.yaml
- include:
file: db/changelog/b.yaml
在自动生成的db.changelog文件夹下的yaml文件中编写ALTER语句。
databaseChangeLog:
- changeSet:
id: 2
comment: tuika
author: takahashi
changes:
- addColumn:
catalogName: testdatabase
columns:
- column:
name: age
remarks: memo
type: bigint
schemaName: public
tableName: user
※databaseChangeLog的id是唯一键,所以不会重复。
执行后确认A5M2

