Database / Liquibase interview questions
What are Liquibase change types and can you name common ones?
A change type is the specific DDL or DML operation that a changeSet performs. Liquibase provides over 40 built-in change types that are database-agnostic — you write the intent (add a column, create an index) and Liquibase generates the correct SQL for the target database. This is one of Liquibase's biggest advantages over raw SQL migrations: the same changeLog can deploy to PostgreSQL, Oracle, MySQL, and SQL Server without modification.
Common structural change types:
createTable/dropTable— create or drop a table with columns and constraints.addColumn/dropColumn— add or remove a column from an existing table.renameColumn/renameTable— rename columns or tables without recreating them.modifyDataType— change a column's data type.addNotNullConstraint/dropNotNullConstraint— add or remove NOT NULL constraints.addUniqueConstraint/dropUniqueConstraint— manage unique constraints.addForeignKeyConstraint/dropForeignKeyConstraint— manage foreign key relationships.createIndex/dropIndex— manage indexes.createSequence/dropSequence— manage sequences (for Oracle, PostgreSQL).createView/dropView— manage views.
Data change types:
insert— insert rows into a table.update— update existing rows.delete— delete rows matching a condition.loadData/loadUpdateData— bulk load from a CSV file.
There is also sql and sqlFile for arbitrary SQL when no built-in type covers your needs, though using them gives up the database-agnostic benefit.
More Related questions...