All Downloads are FREE. Search and download functionalities are using the official Maven repository.

liquibase.harness.diff.changelogs.postgresql17_to_postgresql16.xml Maven / Gradle / Ivy

The newest version!
<?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-latest.xsd">

    <!--          FOREIGN KEY CONSTRAINT            -->

    <changeSet id="1" author="as">
        <createTable tableName="test_table_base">
            <column name="id" type="INT">
                <constraints nullable="false" primaryKey="true"/>
            </column>
        </createTable>
    </changeSet>

    <changeSet id="2" author="as">
        <createTable tableName="test_table_reference">
            <column name="id" type="INT">
                <constraints nullable="false" primaryKey="true"/>
            </column>
            <column name="test_column" type="INT">
                <constraints nullable="false" unique="true"/>
            </column>
        </createTable>
    </changeSet>

    <changeSet id="4" author="as">
        <addForeignKeyConstraint  baseColumnNames="id"
                                  baseTableName="test_table_base"
                                  constraintName="test_fk"
                                  onDelete="CASCADE"
                                  onUpdate="RESTRICT"
                                  referencedColumnNames="test_column"
                                  referencedTableName="test_table_reference"
                                  validate="true"/>
        <rollback>
            <dropForeignKeyConstraint baseTableName="test_table_base"
                                      constraintName="test_fk"/>
        </rollback>
    </changeSet>

    <!--          COLUMN            -->
    <changeSet id="5" author="as" labels="tablesForReferenceDB">
        <createTable tableName="test_table_for_column">
            <column name="id" type="INT"/>
        </createTable>
    </changeSet>

    <changeSet id="6" author="as">
        <addColumn tableName="test_table_for_column">
            <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/>
            <column name="intColumn" type="int" valueNumeric="5"/>
            <column name="dateColumn" type="date" valueDate="2020-09-21"/>
        </addColumn>
    </changeSet>

    <!--          INDEX            -->
    <changeSet id="7" author="as" labels="tableForCreateIndex">
        <createTable tableName="test_table_for_index">
            <column name="id" type="INT"/>
        </createTable>
    </changeSet>

    <changeSet id="8" author="as">
        <createIndex indexName="idx_first_name" tableName="test_table_for_index">
            <column name="id"/>
        </createIndex>
        <rollback>
            <dropIndex tableName="test_table_for_index"
                       indexName="idx_first_name"/>
        </rollback>
    </changeSet>

    <!--          SEQUENCE          -->
    <changeSet id="9" author="as">
        <createSequence incrementBy="1"
                        minValue="1"
                        sequenceName="test_sequence"
                        startValue="1"/>
        <rollback>
            <dropSequence sequenceName="test_sequence"/>
        </rollback>
    </changeSet>

    <!--          VIEW          -->
    <changeSet id="10" author="as">
        <createView viewName="test_view">
            select id, first_name, last_name, email from authors
        </createView>
    </changeSet>

    <!--          UNIQUE CONSTRAINT          -->
    <changeSet id="11" author="as">
        <createTable tableName="test_table_for_uc">
            <column name="id" type="INT"/>
        </createTable>
    </changeSet>

    <changeSet id="12" author="as">
        <addUniqueConstraint columnNames="id"
                             constraintName="test_unique_constraint"
                             deferrable="true"
                             initiallyDeferred="true"
                             tableName="test_table_for_uc"
                             validate="true"/>
        <rollback>
            <dropUniqueConstraint tableName="test_table_for_uc"
                                  constraintName="test_unique_constraint"/>
        </rollback>
    </changeSet>


    <!-- FUNCTION -->
    <changeSet id="13" author="as">
        <pro:createFunction
                encoding="UTF-8"
                functionName="test_function">CREATE OR REPLACE FUNCTION test_function()
            RETURNS trigger
            AS $$
            BEGIN
            RAISE NOTICE 'Test function created';
            RETURN NEW;
            END;
            $$
            LANGUAGE plpgsql;
        </pro:createFunction>
        <rollback>
            <pro:dropFunction functionName="test_function"/>
        </rollback>
    </changeSet>

    <!-- PACKAGE -->
    <changeSet id="14" author="as">
        <pro:createPackage encoding="UTF-8"
                           packageName="Test package">CREATE OR REPLACE FUNCTION test_function1()
            RETURNS trigger
            AS $$
            BEGIN
            RAISE NOTICE 'Test function created';
            RETURN NEW;
            END;
            $$
            LANGUAGE plpgsql;</pro:createPackage>
        <rollback>
            <pro:dropFunction functionName="test_function1"/>
        </rollback>
    </changeSet>

    <!-- PACKAGE BODY -->
    <changeSet id="15" author="as">
        <pro:createPackageBody encoding="UTF-8"
                               packageBodyName="Test package">CREATE OR REPLACE FUNCTION test_function2()
            RETURNS trigger
            AS $$
            BEGIN
            RAISE NOTICE 'Test function created';
            RETURN NEW;
            END;
            $$
            LANGUAGE plpgsql;</pro:createPackageBody>
        <rollback>
            <pro:dropFunction functionName="test_function2"/>
        </rollback>
    </changeSet>

    <!-- TRIGGER -->
    <changeSet id="16" author="as">
        <pro:createTrigger disabled="false"
                           encoding="UTF-8"
                           scope="test"
                           tableName="posts"
                           triggerName="test_trigger">CREATE TRIGGER test_trigger
            BEFORE INSERT ON posts
            FOR EACH ROW EXECUTE PROCEDURE test_function();
        </pro:createTrigger>
        <rollback>
            <pro:dropTrigger triggerName="test_trigger"
                             tableName="posts"/>
        </rollback>
    </changeSet>

    <!-- PROCEDURE -->
    <changeSet id="17" author="as">
        <comment>test procedure</comment>
        <createProcedure

                dbms="postgresql"
                encoding="UTF-8"
                procedureName="test_procedure">CREATE OR REPLACE PROCEDURE test_procedure()
                                               LANGUAGE 'plpgsql'
                                               AS $$
        BEGIN
        END;
                                               $$
        </createProcedure>
        <rollback>
            <dropProcedure procedureName="test_procedure"/>
        </rollback>
    </changeSet>
</databaseChangeLog>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy