Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The file dbchangelog.mariadb.sql will contain the DDL for your database in SQL format


Add dbchangelog.yaml

Code Block
languageyml
titledbchangelog.yaml
databaseChangeLog:

  -  changeSet:
      id:  1
      author:  admin
      changes:
        -  createTable:
            tableName:  person
            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)

  -  changeSet:
      id:  2
      author:  admin
      changes:
        -  addColumn:
            tableName:  person
            columns:
              -  column:
                  name:  username
                  type:  varchar(8)

  -  changeSet:
      id:  3
      author:  admin
      changes:
        -  addLookupTable:
            existingTableName:  person
            existingColumnName:  state
            newTableName:  state
            newColumnName:  id
            newColumnDataType:  char(2)


Add a new plugin dependency to pom.xml

<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.28</version>
</dependency>


mvn package

mvn liquibase:update

3 new entries in the databasechangelog table

Code Block
languagetext
titledatabasechangelog
select * from databasechangelog;
+----+--------+------------------+---------------------+---------------+----------+------------------------------------+---------------------------------------------------------------------------------------------------------+----------+------+-----------+----------+--------+---------------+
| ID | AUTHOR | FILENAME         | DATEEXECUTED        | ORDEREXECUTED | EXECTYPE | MD5SUM                             | DESCRIPTION                                                                                             | COMMENTS | TAG  | LIQUIBASE | CONTEXTS | LABELS | DEPLOYMENT_ID |
+----+--------+------------------+---------------------+---------------+----------+------------------------------------+---------------------------------------------------------------------------------------------------------+----------+------+-----------+----------+--------+---------------+
| 1  | admin  | dbchangelog.yaml | 2021-05-20 16:07:58 |             1 | EXECUTED | 8:f022085620a9dd87ae9ca1f93da51fd0 | createTable tableName=person                                                                            |          | NULL | 3.8.0     | NULL     | NULL   | 1523278917    |
| 2  | admin  | dbchangelog.yaml | 2021-05-20 16:07:58 |             2 | EXECUTED | 8:e3f0f50eb245f66c68ec504db93b6717 | addColumn tableName=person                                                                              |          | NULL | 3.8.0     | NULL     | NULL   | 1523278917    |
| 3  | admin  | dbchangelog.yaml | 2021-05-20 16:07:59 |             3 | EXECUTED | 8:12a8bb9e438047d9332c8aec4f90a76e | addLookupTable existingColumnName=state, existingTableName=person, newColumnName=id, newTableName=state |          | NULL | 3.8.0     | NULL     | NULL   | 1523278917    |
+----+--------+------------------+---------------------+---------------+----------+------------------------------------+---------------------------------------------------------------------------------------------------------+----------+------+-----------+----------+--------+---------------+


mvn liquibase:rollback -Dliquibase.rollbackCount=1

[INFO] Rolling Back Changeset:dbchangelog.yaml::3::admin
[INFO] ALTER TABLE person DROP FOREIGN KEY FK_PERSON_STATE
[INFO] DROP TABLE state
[INFO] DELETE FROM DATABASECHANGELOG WHERE ID = '3' AND AUTHOR = 'admin' AND FILENAME = 'dbchangelog.yaml'


mvn liquibase:rollback -Dliquibase.rollbackCount=2

[INFO] Rolling Back Changeset:dbchangelog.yaml::2::admin
[INFO] ALTER TABLE person DROP COLUMN username
[INFO] DELETE FROM DATABASECHANGELOG WHERE ID = '2' AND AUTHOR = 'admin' AND FILENAME = 'dbchangelog.yaml'
[INFO] Rolling Back Changeset:dbchangelog.yaml::1::admin
[INFO] DROP TABLE person
[INFO] DELETE FROM DATABASECHANGELOG WHERE ID = '1' AND AUTHOR = 'admin' AND FILENAME = 'dbchangelog.yaml'