segment

Here’s how Liquibase can help your team deliver database changes faster, easier, and safer.

--liquibase formatted sql
--changeset nvoxland:create-test-table
CREATE TABLE testTable(
columnName1 VARCHAR (355)
);
--rollback DROP TABLE
--rollback testTable

 

Define database changes

Liquibase makes it easy to define database changes in a format that’s familiar and comfortable to each user and then automatically generates database-specific SQL for you.

Liquibase uses changesets to represent a single change to your database.

--liquibase formatted sql
--changeset nvoxland:create-test-table
CREATE TABLE testTable(
columnName1 VARCHAR (355)
);
--rollback DROP TABLE
--rollback testTable

 

Update and manage the same schema across multiple database types

Liquibase allows you to specify the database change you want using SQL or several different database-agnostic formats, including XML, YAML, and JSON. Developers can abstract the database code to make it extremely easy to push out changes to different database types. The abstract format options also offer more flexibility and many more features over a formatted SQL changelog.

changelog is applied to multiple database types
--liquibase formatted sql
--changeset <author name>:<a unique identifier for the SQL changeset>
<SQL statements go here>
<SQL statements go here>
--rollback <rollback SQL statements>
--rollback <rollback SQL statements>
--changeset <author name>:<another unique identifier>
<SQL statements go here>
<SQL statements go here>
--rollback <rollback SQL statements>
--rollback <rollback SQL statements>

Easily add new changes and reorder them

Database changes are managed with one ledger that we call the changelog. Liquibase tracks which changesets have or have not been deployed in a tracking table.

Using a unique identification scheme (an ID and author, along with the name and path of the file) makes it easy to manage and reorder database changes. Since there are multiple factors that drive the uniqueness of a given change, it also reduces developer conflicts and collisions.

--liquibase formatted sql
--changeset <author name>:<a unique identifier for the SQL changeset>
<SQL statements go here>
<SQL statements go here>
--rollback <rollback SQL statements>
--rollback <rollback SQL statements>
--changeset <author name>:<another unique identifier>
<SQL statements go here>
<SQL statements go here>
--rollback <rollback SQL statements>
--rollback <rollback SQL statements>

Track, version, and deploy database changes

Changelogs and tracking tables allow Liquibase to help teams track and version database changes and deploy changes.

  • Track and version database changes
    Developers know which changes have been deployed to the database and which changes have not yet been deployed.
  • Deploy changes
    Liquibase compares the changelog against the tracking table and only deploys changes that have not been deployed to the database.
liquibase tracking table
target icon

Rollbacks included

Even the free, open-source version of Liquibase allows you to undo changes you have made to your database, either automatically or via custom rollback SQL with the rollback command.

Liquibase Pro adds Targeted Rollbacks, which allow users to rollback a specific change or set of changes without rolling everything else back, saving a lot of time and headaches.

target icon

Selectively deploy changes to different environments

If your use case requires you to selectively deploy changes, Liquibase is a perfect solution. Since Liquibase uses one ledger (changelog), it’s very straightforward to add labels and contexts to ensure that your deployments are defined in one place.

-- liquibase formatted sql changeLogID:123 

-- changeset nvoxland:example labels:v1 context:all 
create table "public"."customer_customer_demo" ("customer_id" CHAR not null, "customer_type_id" CHAR not null, constraint "pk_customer_customer_demo" primary key ("customer_id", "customer_type_")); 

-- changeset nvxoland:example2 labels:v1 context:all create table "public"."customers" ("customer_id" CHAR not null, "company_name" VARCHAR(40) not null, "contact_name" VARCHAR(30), "contact_title" VARCHAR(30), "address" VARCHAR(60), "postal_code" VARCHAR(10), constraint "pk_customers" primary key ("customer_id"));

 

capture logic icon

Work with stored logic

Liquibase Pro enables users to snapshot and work with stored logic. Snapshots allow you to get a static view of your database at a particular point in time and is useful for reporting and safeguarding your data by comparing databases (performing diffs) to find differences.

capture logic icon

Visualize changes

Liquibase Enterprise provides a dashboard with insights into your database changes.

  • Liquibase DMC is our on-prem dashboard and reporting tool designed for our Liquibase Enterprise users.
dashboard icon

Package code and automate

Package your SQL scripts and test the corresponding rollback scripts at the same time. Liquibase Enterprise validates the SQL scripts as well as the rollback scripts. If the rollbacks fail to revert the database back to its original state, then the build fails, and you’re alerted. The Liquibase command returns an error that you’ll see on the command line. Instant feedback loop!

Packager

Keep your database safe & compliant

Automatically enforce best practices set by your DBAs, including naming conventions, grants & revokes, and rollback scripts. Quality checks provide instant feedback on database code. Developers no longer have to wait for hours or days for a DBA to provide feedback on their work.

Quality Checks
compliance icon
forecast icon

Forecast changes and eliminate failed deployments

Forecast the impact of changes on a target database in any environment. Take the risk out of deployment! Liquibase Enterprise checks to ensure that nothing has changed in the target database that would cause changes that worked in a lower environment to fail in the target environment.

Never hear “it worked in Test but failed in Stage” ever again.

Forecast
forecast icon