Jadda:
春ブーツ、春データJPAプロジェクトでは、私は、名前のエンティティクラス持つ国いくつかの列とを。私は、変更履歴生成し、以下のコマンドでそれを適用しました
$ mvn process-test-resources
$ mvn process-resources
これは、LiquiBaseをし、LiquiBaseを-hibernate5プラグインを使用してテーブルを作成しました
Country.java
package com.liquibasedemo.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "country")
@Data
public class Country
{
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "code")
private String code;
@Column(name = "iso_code")
private String isoCode;
@Column(name = "test_code")
private String testCode;
@ManyToOne
@JoinColumn(name = "region_id")
@JsonIgnore
private Region region;
}
私は、更新testCode
カントリークラスでStringに長いから、列のデータ型をとチェンジセットを生成するために、上記のコマンドを使用していました。チェンジセットを適用した後、データ型は変更されません。ここではpom.xmlファイルがあります
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com</groupId>
<artifactId>liquibasedemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>liquibasedemo</name>
<description>Liquibase Demo project with Spring Boot and Spring Data</description>
<properties>
<spring-boot.version>2.1.5.RELEASE</spring-boot.version>
<hibernate.version>5.4.3.Final</hibernate.version>
<liquibase-maven-plugin.version>3.5.5</liquibase-maven-plugin.version>
<liquibase-hibernate5.version>3.6</liquibase-hibernate5.version>
<validation-api.version>2.0.1.Final</validation-api.version>
<javassist.version>3.24.0-GA</javassist.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase-maven-plugin.version}</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
<changeLogFile>src/main/resources/db/db.changelog-master.xml</changeLogFile>
<diffChangeLogFile>src/main/resources/db/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
<logging>info</logging>
</configuration>
<executions>
<execution>
<id>update-profile</id>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
<execution>
<id>diff-profile</id>
<phase>process-test-resources</phase>
<goals>
<goal>diff</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>${liquibase-hibernate5.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${validation-api.version}</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
muasif80:
使用したチェンジセットのこの世代は、liquibase-hibernate5
フィールドタイプの変更が含まれていません。あなたがに見ることができる場合はchangeset
、ファイル、あなたは見つけることができませんchangeset
、あなたのフィールドタイプの変更についての生成します。でサポートされていないしているように見えるliquibase-hibernate5
のプラグイン。
この中でコメントを見ているクラス
このプラグインの開発者がでそれについて議論されたリンク
Hibernateはデータ型を表しどのデータベースは、彼らが実際には同じであってもデータ型を表し方法よりも、通常は異なるため、これらは無視される傾向にある理由があります。私は、LiquiBaseを4でこれを改善する方法を模索しています。
今のソリューションを追加することです
diff
手動を。次のコードは以下から取得されたリンク<changeSet author="liquibase-docs" id="modifyDataType-example"> <modifyDataType catalogName="cat" columnName="id" newDataType="int" schemaName="public" tableName="person"/> </changeSet>