What’s a Database Pipeline?

One of the things I ran into a few years ago was the idea of a software pipeline. A set journey across machines and stages that your software takes. In modern, DevOps style development shops, this usually means:

  • A development machine(s)
  • A Version Control System (VCS)
  • A CI/Build server/system
  • An artifact repository
  • Test server(s)/system(s)
  • Production server(s)/system(s)

Usually software flows along this path as code is written, compiled, and moved from one stage to the next. You may have more or less stages in your environment.

For databases, this should be similar, with databases in

  • development
  • test/QA
  • staging/pre-production
  • production

You could also have other stages like integration, beta, user acceptance, etc. I’ve seen people with 7, 8, or 9 databases in their environment, all a part of their entire development and operational areas.

The database development pipeline is the set of databases that your code flows through. We’ve represented this with visually in DLM Dashboard as a flow, allowing up to 5 environments to be defined. You can see one of my pipelines in this image:

2016-08-01 22_16_05-SalesDemo-2015-12-01-1745-export-i-fgod4b6h - VMware Workstation

Keeping code flowing smoothly along this pipeline is the goal of any development effort. We know this at Redgate, and our mission is to build tools to help you do this efficiently.

About way0utwest

Editor, SQLServerCentral
This entry was posted in Blog and tagged , , . Bookmark the permalink.

2 Responses to What’s a Database Pipeline?

  1. @GotDisk says:

    Are you seeing any changes to this process as more developers are moving to agile methods with more frequent pushes and fewer environments?


    • way0utwest says:

      What I see is a more formal linkage and use of these environments, as well as automated work to ensure changes always flow through the process. I see more environments in agile, as you have a Dev (individual) and dev(integrated) database, as well as a separate test environment. Some use a CI database as well.


Comments are closed.