1
  • 我使用 liquibase-maven-plugin 生成数据库迁移脚本。
  • 但是 liquibase 将 UUID id 字段生成为 BINARY(255)。
  • 这本身不是问题,因为新实体的 ID 是由 hibernate 生成的。因此不需要对 uuid 的数据库支持。
  • 但我现在的问题是 csv 文件中的示例数据,我必须将 uuid 作为二进制文件插入其中。

所以我看到我的问题有两种可能的解决方案:

  1. 让 liquibase-maven-plugin 将 UUID 字段生成为真正的 UUID 数据库字段。
  2. 告诉 liquibase 在插入之前将我的 csv 文件中的 uuid 转换为二进制文件。

有谁知道如何执行 1. 或 2. ?

或者甚至有一个我不知道的 3. 选项?

java实体

@Entity
public class TestEntity {
  @Id
  @GeneratedValue
  private UUID id;
  @Column
  private String name;
}

liquibase-maven-plugin 生成的变更集

- changeSet:
    id: 1638440755794-7
    changes:
    - createTable:
        columns:
        - column:
            constraints:
              nullable: false
              primaryKey: true
            name: id
            type: BINARY(255)
        - column:
            name: name
            type: VARCHAR(255)
        tableName: test_entity

示例数据.csv -不工作

id,name
0da87def-2d39-47f1-ae4a-310fc37a8aa0,meinName

样本数据.csv -工作

id,name
Dah97y05R/GuSjEPw3qKoA==,meinName
4

1 回答 1

0

从 3.6 版开始,Liquibase 似乎支持 UUID:

https://docs.liquibase.com/workflows/liquibase-community/working-with-uuids.html

于 2021-12-06T09:15:33.647 回答