Liquibase/PostgreSQL: how to preserve table case correctly?

case-sensitive, ddl, liquibase, postgresql

Solution

You can use the objectQuotingStrategy="QUOTE_ALL_OBJECTS" attribute on your changeSet attribute or on the databaseChangeLog root element to override the default logic of "only quote objects that have to be"

Problem

I'm using Liquibase 3.1.1 to create tables in PostgreSQL 9.1. For example: ``` <changeSet id="1" author="bob"> <createTable tableName="BATCHES"> <!-- .. -- > </createTable> </changeSet> ``` However, the table gets created with a lowercase name: ``` # select * from "BATCHES"; ERROR: relation "BATCHES" does not exist ``` Is there any way to have Liquibase generate DDL that preserves the case of the table (and column etc) names that I specify in the change log?

Original source