liquibase.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 21 Dec 2015 12:40:38 +0200
changeset 1838 031c61d1a8bd
child 1840 da2130eaa115
permissions -rw-r--r--
Introducing LiquiBase to existing project.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1838
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
.. include:: HEADER.rst
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
============
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
 LiquiBase.
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
============
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
.. contents::
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
Introducing LiquiBase to existing project.
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
==========================================
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
Official statement about introducing LiquiBase to existing project are:
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
  http://www.liquibase.org/documentation/existing_project.html
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
    Adding Liquibase on an Existing project
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
There are two approaches:
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
 * create full schema definition prior to introducing Liquibase
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
 * works only with current changes becase Liquibase basically work only with changesets and only
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
   special supplied instruments care about full schema definition
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
To create full schema debinition you may run::
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
  mvn liquibase:generateChangeLog -Dliquibase.outputChangeLogFile=...
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
on clean project without Liquibase. Or set name for changelog output file in ``pom.xml``.
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
(here reduced not fully worked declaration)::
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
  <plugin>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
      <groupId>org.liquibase</groupId>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
      <artifactId>liquibase-maven-plugin</artifactId>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
      <version>${liquibase.version}</version>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
      <configuration>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
          <outputChangeLogFile>changelog.xml</outputChangeLogFile>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
      </configuration>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
  </plugin>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
.. NOTE::
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
   ``pom.xml`` settings have precedence over ``-Dliquibase.outputChangeLogFile=...`` unless you
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
   define it as::
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
     <properties>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
         <liquibase.outputChangeLogFile>${project.build.directory}/changelog.xml</liquibase.outputChangeLogFile>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
     </properties>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
     <plugins>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
         <plugin>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
             <configuration>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
                 <outputChangeLogFile>${liquibase.outputChangeLogFile}</outputChangeLogFile>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
             </configuration>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
         </plugin>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
     </plugins>
031c61d1a8bd Introducing LiquiBase to existing project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54