Как я могу генерировать сценарии DDL, используя Liquibase? - PullRequest
0 голосов
/ 20 марта 2019

У меня есть объект компонента

package com.entities;

@Entity
public class Author {

 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer id;

 @Column(nullable = false, unique = true)
 private String name;

 protected Author() {
// for JPA
 }

public Author(Integer id, String name) {
   this.id = id;
   this.name = name;
}

public Integer getId() {
  return id;
}

public String getName() {
  return name;
}

@Override
public String toString() {
  return "Author{" +
    "id=" + id +
    ", name='" + name + '\'' +
    '}';
  }
}

Я хочу сгенерировать DDL (create,alter,drop) скрипты для хранения моего объекта.

Я не хочу никакихавтоматическая конфигурация ddl для создания таблиц для меня, вместо этого я хочу Liquibase для ее генерации.Как я могу это сделать ?Я смогу предоставить метаданные для того же.Мне нужны скрипты для JPA.

Я попытался сгенерировать, предоставив databaseChangeLog для Liquibase, и это выглядит примерно так

<?xml version="1.0" encoding="UTF-8"?>

<databaseChangeLog
 xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
     http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

 <changeSet author="John (generated)" id="1439225004329-1">
    <createTable tableName="Author ">
        <column autoIncrement="true" name="id" type="BIGINT">
            <constraints primaryKey="true"/>
        </column>
        <column name="name" type="VARCHAR(255)"/>
      </createTable>
    </changeSet>

 </databaseChangeLog>

Здесь типчто changelog ожидает это тип столбца в db.Как я могу использовать Liquibase для определения типа (VARCHAR) из типа атрибута, который является строкой (имени атрибута)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...