...
Table of Contents | ||
---|---|---|
|
...
Note: when modifySQL is run, Liquibase has already converted MySQL's DATETIME into Oracle TIMESTAMP, so TIMESTAMP is what needs to be in the replace clause to match against.the replace clause to match against.
Contexts
Liquibase has the concept of a context. When running liquibase, a context can be specified and only changes with this context will be loaded. All liquibase change files should have the appropriate context on them. All liquibase change sets should have the appropriate context specified. Multiple contexts can be specified by separating them with commas. Here is an example:
Code Block | ||
---|---|---|
| ||
<changeSet author="KFS51" id="KFSCNTRB-734" context="bootstrap,demo,unit">
<comment>KFSCNTRB-734</comment>
<addColumn tableName="FS_DOC_HEADER_T">
<column name="SECURE_FIELD" type="VARCHAR(255)" />
</addColumn>
</changeSet> |
This is a list of the contexts defined for financials.
Context | Purpose |
---|---|
bootstrap | This context will load the minimum data to start up and run the financials project |
demo | This context will load demo data for financials. |
unit | This context will setup a database with demo data from kfs and rice in the same database. It is used for unit tests. |
kfskc_bootstrap | This context (when used along with bootstrap) will load the minimum data to start up financials with integration with Kuali Coeus. |
kfskc_demo | This context (when used along with demo) will load the demo data for financials setup for integration with Kuali Coeus. |
DBMS
The dbms setting is used to specify that a changeset is for a specific database. An example of where this is used is for sequences. A sequence is a feature specific to Oracle. Financials will require a table in place of the sequence when running against MySql. The following is an example that uses the dbms attribute.
Code Block |
---|
<changeSet author="kfs" id="CA_A21_ICR_ACCT_SEQ" dbms="mysql" context="bootstrap,demo,unit">
<createTable tableName="CA_A21_ICR_ACCT_SEQ">
<column autoIncrement="true" name="id" type="BIGINT">
<constraints primaryKey="true"/>
</column>
</createTable>
<insert tableName="CA_A21_ICR_ACCT_SEQ">
<column name="id" value="10020"/>
</insert>
</changeSet>
<changeSet author="kfs" id="CA_A21_ICR_ACCT_SEQ" dbms="oracle" context="bootstrap,demo,unit">
<createSequence sequenceName="CA_A21_ICR_ACCT_SEQ" startValue="10020"/>
</changeSet>
|
Sample Liquibase Scripts
Code Block | ||
---|---|---|
| ||
<changeSet author="KFS50" id="KFSMI-6921_CA_ACCT_AUTODEF_ICR_T"> <comment>KFSMI-6921 Create Account and A21SubAccount ICR collection tables</comment> <createTable tableName="CA_ACCT_AUTODEF_ICR_T"> <column name="CA_ICR_ACCT_GNRTD_ID" type="DECIMAL(10,0)"> <constraints primaryKey="true" primaryKeyName="CA_ACCT_AUTODEF_ICR_TP1" /> </column> <column name="OBJ_ID" type="VARCHAR(36)"> <constraints nullable="false" unique="true" uniqueConstraintName="CA_ACCT_AUTODEF_ICR_TC0" /> </column> <column name="VER_NBR" type="DECIMAL(8,0)" defaultValueNumeric="1"> <constraints nullable="false" /> </column> <column name="ACCT_DFLT_ID" type="DECIMAL(10,0)" /> <column name="ICR_FIN_COA_CD" type="VARCHAR(2)" /> <column name="ICR_FIN_ACCT_NBR" type="VARCHAR(7)" /> <column name="ACLN_PCT" type="DECIMAL(35,20)" /> <column name="ACTV_IND" type="VARCHAR(1)" defaultValue="Y" /> </createTable> </changeSet> |
...
Update liquibase files, if any, are located in a package corresponding to each module + /db/phase5phaseX/ (ex: kfs-ar/src/main/resources/org.kuali.kfs.module.ar/db/phase5phaseX/).
LiquiRelational Properties
...
No Format |
---|
java -jar {/path/to/liquinbase}.jar --logLevel=finest --defaultsFile={path/to}/liquibase.properties --changeLogFile={path/to}/liquibase.xml updateSQL |
LiquiBase Notes
...