renameCompositeType

The renameCompositeType change type allows you to change the name of a user-defined composite type. It allows you to align with naming standards, clarify a purpose, and refactor your schema structure. When you rename a composite type, all dependent objects such as tables that refer to the composite type must be updated manually.

Note: Inspection features or commands, such as snapshot, diff, generate-changelog, and diff-changelog, are not currently supported with composite types.

Run renameCompositeType

To run this Change Type, follow these steps:

  1. Add the Change Type to your changeset, as shown in the examples on this page.
  2. Specify any required attributes. Use the table on this page to see which ones your database requires.
  3. Deploy your changeset by running the update command:
  4. liquibase update

Available attributes

Name Type Description Requirement
catalogName String Name of the catalog Optional
schemaName String Name of the schema that contains the composite type you want to alter Optional
oldTypeName String Name of the composite type that you no longer want to use Required
newTypeName String Name of the new type that you want to use Required

Examples

databaseChangeLog:
  - changeSet:
    id: 1
    author: itTest
    changes:
      - createCompositeType:
        typeName: "myRenameType"
        typeAttributes:
          - typeAttribute:
            name: "attr1"
            type: "int"
          - typeAttribute:
            name: "attr2"
            type: "text"
            collation: "en_US"
      - renameCompositeType:
        oldTypeName: "myRenameType"
        newTypeName: "myNewNameType"
{
  "databaseChangeLog": [
    {
      "changeSet": {
        "id": "1",
        "author": "itTest",
        "changes": [
          {
            "createCompositeType": {
              "typeName":"myType",
              "typeAttributes": [
                {
                  "typeAttribute": {
                    "name": "attr1",
                    "type": "int"
                  }
                },
                {
                  "typeAttribute": {
                    "name": "attr2",
                    "type": "text",
                    "collation":"en_US"
                  }
                },
                {
                  "typeAttribute": {
                    "name": "Attr3",
                    "type": "real"
                  }
                },
                {
                  "typeAttribute": {
                    "name": "ATTR4",
                    "type": "line"
                  }
                }
              ]
            }
          },
          }
        ]
      }
    }
  ]
}
<?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">
    <changeSet author="itTest" id="1">
        <pro:createCompositeType typeName="myType">
            <pro:typeAttribute name="attr1" type="int"/>
            <pro:typeAttribute name="attr2" type="text" collation="en_US"/>
            <pro:typeAttribute name="Attr3" type="real"/>
            <pro:typeAttribute name="ATTR4" type="line"/>
        </pro:createCompositeType>
        <pro:renameCompositeTypeAttribute typeName="myType" oldAttributeName="attr1" newAttributeName="att®1" onUpdate="CASCADE"/>
        <pro:renameCompositeTypeAttribute typeName="myType" oldAttributeName="attr2" newAttributeName="attribute 2" onUpdate="CASCADE"/>
        <pro:renameCompositeTypeAttribute typeName="myType" oldAttributeName="Attr3" newAttributeName="AtTrIbUtE3" onUpdate="CASCADE"/>
        <pro:renameCompositeTypeAttribute typeName="myType" oldAttributeName="ATTR4" newAttributeName="attr &amp; 4" onUpdate="CASCADE"/>
    </changeSet>
</databaseChangeLog>

Database Support

This change type is only supported for PostgreSQL.