Database Lab Engine 2.4: realistic DB testing in GitHub Actions; Terraform module

Posted on 2021-07-22 by Postgres.ai
Related Open Source

About Database Lab Engine

The Database Lab Engine (DLE) is an experimentation platform for PostgreSQL databases, distributed under an open-source license (AGPLv3). The DLE instantly creates full-size thin clones of your production database. With these clones, you can:

  • test database migrations
  • optimize SQL queries
  • deploy full-size staging applications

The Database Lab Engine can generate thin clones for any size database, eliminating the hours (or days!) required to create “thick” database copies using conventional methods. Thin clones are independent, fully writable, and will behave identically to production: they will have the same data and generate the same query plans.

Learn more about the Database Lab Engine and sign up for an account for an automated demo at Postgres.ai.

Database Lab Engine 2.4

DLE 2.4 brings two major capabilities to those who are interested in working with PostgreSQL thin clones:

  • a new component, DB Migration Checker, that automates DB migration testing in CI/CD pipelines
  • a Terraform module to deploy DLE in AWS using the "logical" provisioning mode

Additionally, this release has a lot of improvements and fixes. You can find the full list of changes in CHANGELOG.

Add DB change testing to your CI/CD pipelines

DB migrations – database schema and data changes usually controlled by a special tool that tracks the changes in Git. There are many such tools: Flyway, Liquibase, and Active Record Migrations, to name a few. These tools are necessary for keeping DB schema changes sane, reliable, and predictable.

However, in most cases, testing of the changes in CI/CD is very weak because it is done using either an empty or some tiny, mocked database. As a result, with growing databases and workloads, deployments of DB changes fail more often. This problem may be so annoying for some people that they might even think about switching to some NoSQL, schemaless databases, to forget about such issues (but to meet, eventually, a bunch of others).

With DLE 2.4 and its DB Migration Checker component, it becomes easy to get realistic testing using thin clones of PostgreSQL databases of any size right in CI/CD pipelines. This approach helps you drastically decrease the risk of deploying harmful DB schema changes, while not sacrificing development speed.

Currently, full integration is implemented for GitHub and GitHub Actions. The code (Go) is open and extendable. We are planning to extend support to other Git and CI/CD platforms and looking for those who are interested in being involved: join our Community Slack or open an issue in the DLE Issue tracker.

Examples

See examples of realistic DB migration testing in the blog post about Database Lab Engine 2.4.

Terraform module to deploy DLE and its components in AWS

Terraform module for Database Lab helps you deploy the Database Lab Engine within cloud environments such as AWS. You can find the code and detailed README here: https://gitlab.com/postgres-ai/database-lab-infrastructure.

Links

Request for feedback and contributions

Feedback and contributions would be greatly appreciated:

Detailed overview of DLE 2.4's new features with examples you can find in the blog post about Database Lab Engine 2.4.