liquibase
--driver=com.mysql.cj.jdbc.Driver
--classpath=mysql-connector-java-5.1.21-bin.jar
--url="jdbc:mysql://<IP OR HOSTNAME>:<PORT>/<SCHEMA NAME>?autoReconnect=true&useSSL=FALSE|TRUE"
--changeLogFile=db.changelog-1.0.xml
--username=<MYSQL USERNAME>
--password=<MYSQL PASSWORD>
generateChangeLog
The purpose of this document is to guide you through the process of creating a new Liquibase project with MySQL on a Windows 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 with MySQL.
Note: Place the jdbc jar driver file in a known directory so you can locate it easily.
Example: C:\Users\Liquibase_Drivers\mysql-connector-java-5.1.48.jar
<?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.8.xsd">
</databaseChangeLog>
changeLogFile: C:\\Users\\Administrator\\LiquibaseMySQL\\dbchangelog.xml
url: jdbc:mysql://localhost:3306/my_schema
username: root
password: password
driver: org.gjt.mm.mysql.Driver
classpath: ../../Liquibase_Drivers/mysql-connector-java-5.1.48.jar
Because you are creating this project on Windows OS, you must specify the path with double slashes in the changeLogFile property. You must also use a relative path from your project directory to the driver jdbc jar file location in the classpath property.
Note: If you already 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: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>
Note: This create table change set is XML format. The corresponding SQL statement should look like the following:
CREATE TABLE "department"
("id" number(*,0),
"name" VARCHAR2(50 BYTE),
"active" NUMBER(1,0) DEFAULT 1
);
Open the command prompt. Navigate to the LiquibaseMySQL directory.
Run the following command:
From a database UI Tool, for example: “MySQL Workbench” check your database changes under “my_schema”. You should see a new “department” table added to the database. For example:
SELECT * FROM my_schema.department;
ID | NAME | ACTIVE |
---|---|---|
NULL | NULL | NULL |
Also, you should see two more tables:
ID | AUTHOR | FILENAME | DATEEXECUTED | ORDEREXECUTED | EXECTYPE | MDSUM | … |
---|---|---|---|---|---|---|---|
1 | bob | dbchangelog.xml | date&time |
1 | EXECUTED | checksumvalue |
… |