Generating Change Logs
When starting to use LiquiBase on an existing database, it is often useful, particularly for testing, to have a way to generate the change log to create the current database schema. LiquiBase allows you to do this with the “generateChangeLog” command line command.
Note that this command currently has some limitations. It does not export the following types of objects:
- Stored procedures, functions, packages
- Triggers
Example
liquibase --driver=oracle.jdbc.OracleDriver \
--classpath=\path\to\classes:jdbcdriver.jar \
--changeLogFile=com/example/db.changelog.xml \
--url="jdbc:oracle:thin:@localhost:1521:XE" \
--username=scott \
--password=tiger \
generateChangeLog
<?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.1 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.1.xsd"> <changeSet author="diff-generated" id="1185214997195-1"> <createTable name="BONUS"> <column name="ENAME" type="VARCHAR2(10,0)"/> <column name="JOB" type="VARCHAR2(9,0)"/> <column name="SAL" type="NUMBER(22,0)"/> <column name="COMM" type="NUMBER(22,0)"/> </createTable> </changeSet> <changeSet author="diff-generated" id="1185214997195-2"> <createTable name="DEPT"> <column name="DEPTNO" type="NUMBER(2,0)"/> <column name="DNAME" type="VARCHAR2(14,0)"/> <column name="LOC" type="VARCHAR2(13,0)"/> </createTable> </changeSet> <changeSet author="diff-generated" id="1185214997195-3"> <createTable name="EMP"> <column name="EMPNO" type="NUMBER(4,0)"/> <column name="ENAME" type="VARCHAR2(10,0)"/> <column name="JOB" type="VARCHAR2(9,0)"/> <column name="MGR" type="NUMBER(4,0)"/> <column name="HIREDATE" type="DATE(7,0)"/> <column name="SAL" type="NUMBER(7,2)"/> <column name="COMM" type="NUMBER(7,2)"/> <column name="DEPTNO" type="NUMBER(2,0)"/> </createTable> </changeSet> <changeSet author="diff-generated" id="1185214997195-4"> <createTable name="SALGRADE"> <column name="GRADE" type="NUMBER(22,0)"/> <column name="LOSAL" type="NUMBER(22,0)"/> <column name="HISAL" type="NUMBER(22,0)"/> </createTable> </changeSet> <changeSet author="diff-generated" id="1185214997195-5"> <addForeignKeyConstraint baseColumnNames="DEPTNO" baseTableName="DEPT" constraintName="FK_NAME" referencedColumnNames="DEPTNO" referencedTableName="EMP"/> </changeSet> <changeSet author="diff-generated" id="1185214997195-6"> <createIndex indexName="PK_DEPT" tableName="DEPT"> <column name="DEPTNO"/> </createIndex> </changeSet> <changeSet author="diff-generated" id="1185214997195-7"> <createIndex indexName="PK_EMP" tableName="EMP"> <column name="EMPNO"/> </createIndex> </changeSet> <changeSet author="diff-generated" id="1185214997195-8"> <addPrimaryKey columnNames="DEPTNO" tableName="DEPT"/> </changeSet> <changeSet author="diff-generated" id="1185214997195-9"> <addPrimaryKey columnNames="EMPNO" tableName="EMP"/> </changeSet> </databaseChangeLog>
