NEW Webinar: Bring CI/CD Discipline to Snowflake

Migrating from Azure DevOps to GitHub Actions: A Database Deployment Guide

Guide

Table of contents

Introduction

As more engineering teams migrate from Azure DevOps to GitHub Actions, modernizing application pipelines becomes top of mind. But while CI/CD for app code is often handled early, database change frequently gets left behind, leading to slow deployments, outages, and compliance gaps.

If your team is planning (or in the middle of) a move to GitHub Actions, this guide will help you:

  • Avoid common pitfalls when shifting database pipelines
  • Standardize database change in your GitHub Actions workflows
  • Improve speed, safety, and compliance across your deployments

Why Teams Are Moving to GitHub Actions

Microsoft owns both Azure DevOps and GitHub. But over the past few years, GitHub Actions has become Microsoft’s strategic focus for CI/CD. GitHub offers native integration, automation tools, and a rapidly growing developer ecosystem. It’s no surprise many teams are consolidating on GitHub and moving their pipelines there,  especially since most source code already lives in GitHub. Keeping code and pipelines together streamlines collaboration and security.

GitHub even offers an Actions Importer to help you migrate Azure DevOps pipelines directly into GitHub workflows. If you're using Liquibase Flow, this transition is even easier with built-in support for modern pipelines and GitHub-native workflows.

The Hidden Risk: Database Deployments

Application pipelines often get rebuilt during a GitHub Actions migration. But database pipelines usually lag behind, creating a fragile, manual bottleneck:

  • Custom scripts may not port cleanly to GitHub
  • Manual DB releases slow down velocity
  • Compliance and audit trails get lost
  • Rollbacks become unreliable

Red Flag: If you’re automating app deployments in GitHub but managing database changes manually or with homegrown scripts, you're exposed.

What You Need for Database CI/CD in GitHub Actions

To safely and efficiently manage schema changes in GitHub, your team needs:

  • Automation: Declarative, repeatable workflows to update databases
  • Observability: Logs, reporting, and visibility into change history
  • Governance: Policies, approvals, and controls to reduce risk
  • Rollback: Confidence to reverse a change if something goes wrong

Why Liquibase Pro Is Purpose-Built for GitHub Actions

Liquibase Pro provides a complete Database DevOps platform that plugs into GitHub Actions with official, supported integrations:

  • Prebuilt GitHub Actions: Automate database update, validation, diff, snapshot, and rollback with reusable GitHub workflows
  • Standardization: Use Liquibase Flow to apply consistent release patterns across PostgreSQL, SQL Server, Oracle, MongoDB, and more. With standardized changelogs (e.g., XML), you can deploy anywhere, anytime regardless of environment.
  • Compliance-Ready: Built-in audit trails, change logs, and policy enforcement
  • Rollback Protection: Generate rollback scripts to quickly undo errors

Whether you're migrating a monolith or managing microservices, Liquibase Pro enables safe, scalable schema change as part of your GitHub-based pipeline. It also works seamlessly with GitHub Actions environments and approvals, making it easy to integrate policy checks into gated production workflows.

Sample Workflow: Liquibase + GitHub Actions

name: Deploy Database Changes

on:

  push:

    branches:

      - main

jobs:

  update-db:

    runs-on: ubuntu-latest

    steps:

      - uses: actions/checkout@v3

      - name: Run Liquibase Snapshot

        uses: liquibase-github-actions/snapshot@v4.25.1

        with:

          url: ${{ secrets.DB_URL }}

          username: ${{ secrets.DB_USERNAME }}

          password: ${{ secrets.DB_PASSWORD }}

      - name: Run Liquibase Diff

        uses: liquibase-github-actions/diff@v4.25.1

        with:

          referenceUrl: ${{ secrets.REF_DB_URL }}

          url: ${{ secrets.DB_URL }}

          username: ${{ secrets.DB_USERNAME }}

          password: ${{ secrets.DB_PASSWORD }}

      - name: Run Liquibase Policy Check

        uses: liquibase-github-actions/checks@v4.25.1

      - name: Run Liquibase Update

        uses: liquibase-github-actions/update@v4.25.1

        with:

          changelogFile: db/changelog.xml

          url: ${{ secrets.DB_URL }}

          username: ${{ secrets.DB_USERNAME }}

          password: ${{ secrets.DB_PASSWORD }}

This action applies your latest schema changes automatically when code is pushed to main, after checking for policy violations and diffs.

Getting Started

If you're planning a GitHub Actions migration or already mid-flight, this is a perfect time to modernize your DB pipeline:

  • Use Liquibase Pro's official GitHub Actions to automate schema change
  • Eliminate manual deployments and improve release reliability
  • Get audit-ready visibility with built-in compliance features

Talk to Our Team

Want help migrating your database pipeline to GitHub Actions? We offer free readiness assessments and onboarding support for teams moving from Azure DevOps.Request a Consultation: https://www.liquibase.com/contact-us