Applies to:
- Liquibase Pro
- Liquibase Open Source (Commnity)
Conditions:
- Non-modeled changesets (i.e., formatted SQL and raw SQL)
Question:
Why is the casing of my schema name not preserved when executing SQL via Liquibase?
Example:
-- liquibase formatted sql
-- changeset lora:1
CREATE SCHEMA schemaName;
-- changeset lora:2
CREATE TABLE schemaName.tableName (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
Outcome:
Answer:
The `preservedSchemaCase` parameter determines whether Liquibase treats schema and catalog names as case-sensitive. The default value is "false".
However, this parameter does not apply to non-modeled changesets, such as formatted SQL and raw SQL. To preserve the case sensitivity of your schema and catalog names when using SQL, the schema and catalog names should be wrapped in double quotes.
Example:
-- liquibase formatted sql
-- changeset lora:1
CREATE SCHEMA "schemaName";
-- changeset lora:2
CREATE TABLE "schemaName"."tableName" (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
Outcome:
Comments
0 comments
Article is closed for comments.