The purpose of this document is to guide you through the process of creating a new Maven project with PostgreSQL on a Linux/Unix/Mac machine. In this tutorial, you will generate an example project and follow the instructions to apply and learn concepts associated with creating new Liquibase Projects within Maven.
Install Liquibase with Maven on Linux/Unix/Mac if you have not done so already.
To create a Liquibase project within Maven that uses a PostgreSQL database, begin with the following steps:
MavenPostgreSQL
.dbchangelog.xml
in the MavenPostgeSQL
directory. This file will be your changelog, a file that will keep track of
all the changes you make to your database structure. You can learn more about them on the Database Change Log File page.
In this tutorial, you will manually add a single change. We will start with an empty changelog file.dbchangelog.xml
file and update it with the following text. This is a basic empty changelog file. <?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
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.8.xsd">
</databaseChangeLog>
liquibase.properties
changeLogFile: dbchangelog.xml
url: jdbc:postgresql://localhost:5432/MYDATABASE
username: postgres
password: password
Note: If you have a Liquibase Pro key and want to apply it to your project, add the following property to your liquibase.properties file.
liquibaseProLicenseKey: <paste license key>
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
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.8.xsd">
<changeSet id="1" author="bob">
<createTable tableName="department">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="varchar(50)">
<constraints nullable="false"/>
</column>
<column name="active" type="boolean" defaultValueBoolean="true"/>
</createTable>
</changeSet>
</databaseChangeLog>
pom.xml
.pom.xml
file and update it to have the following contents: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.my-group.app</groupId>
<artifactId>LiquiPostgreSQL-app</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<propertyFile>liquibase.properties</propertyFile>
</configuration>
<dependencies>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
MavenPostgreSQL
directory.mvn liquibase:update
Also, you should see two more tables: