Liquibase - DmitryGontarenko/usefultricks GitHub Wiki

Creating using yml

Создание скрипта миграции для базы данных с помощью yaml формата.
В данном примере мы создаем таблицу users с полями id, name и email, и заполняем их.

databaseChangeLog:
  - preConditions:
      - runningAs:
          username: report_user
  - changeSet:
      id: users-table-1
      author: root
      changes:
        - createTable:
            tableName: users
            columns:
              - column:
                  name: id
                  type: int
                  constraints:
                    primaryKey: true
                    nullable: false
              - column:
                  name: name
                  type: varchar(50)
                  constraints:
                    nullable: false
              - column:
                  name: email
                  type: varchar(128)
                  constraints:
                    nullable: false
                    unique: true
  - changeSet:
      id: user-table-2
      author: root
      changes:
        - insert:
            tableName: users
            columns:
              - column:
                  name: id
                  value: 1
              - column:
                  name: name
                  value: "John"
              - column:
                  name: email
                  value: "[email protected]"

CSV

Описание CSV-формата в рамках статьи о Liquibase.
CSV (Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.

Specification

  • Каждая строка файла - это одна строка таблицы базы данных;
  • Разделителем (delimiter) значений колонок является символ запятая (,);
  • Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.

CSV with Liquibase

Файлы формата .csv можно использовать для заполнения таблицы базы данных. Для этого необходимо:

  1. Создать changeSet в файле-миграций, например:
    <changeSet id="fill_tb_customer" author="dmitriy">
        <loadData file="fill_tb_customer.csv"
                  tableName="tb_customer" relativeToChangelogFile="true"/>
    </changeSet>

В атрибуте file указываем путь до csv файла.
Атрибут relativeToChangelogFile="true" показывает, что файл будет находиться по пути относительно корневому каталогу, иначе поиск будет производиться в папке resources.

  1. Создаем наш .csv файл. В данном примере будет заполняться уже ранее созданная таблица, которая имеет поля: id, name, age, address и phone.
id,name,age,address,phone
1,Dolores,18,3842 Morris Street,830-351-1525
2,Justin G. Wadley,24,3069 Oakmound Road,773-233-8821
3,Jeff T. Mays,22,2603 Olive Street,419-343-7541

Стоит отметить, что вставка с помощью .scv файла не работает для полей типа text. Об этой проблеме можно почтить здесь или здесь.

Formatting

Intellij idea поддерживает работу с .csv расширение. Если навести курсор на какое-либо значение, во всплыващем окне будет показано, к какому полю это значение относится. Или же можно перейти на вкладку Table Editor, там значения отображаются в табличном представлении.
Плагин для работы с scv для Intellij idea можно скачать здесь.

Источник

⚠️ **GitHub.com Fallback** ⚠️