Schema Management Under Source Control

A long time ago, I’ve written a post for Kaltura, the best video management platform out there, where I worked at as a data warehouse consultant and lead developer. I’ve spend a lot of my time there scaling the system as the company grew, writing ETL processes and code, migrating large databases from one schema to another, and building tools and processes to help make testing and deployment easier for such large databases.

My good friend, Roni Cohen, community manager extraordinaire, has brought to my attention that the post has finally been published:

Schema Management Under Source Control

Deploying new features that require changes to the database is a technical challenge in any application. To quote Jeff Atwood from Coding Horror: “When I ask development teams whether their database is under version control, I usually get blank stares.”

The database is a critical part of your application. If you deploy version 2.0 of your application against version 1.0 of your database, what do you get? A broken application. And that’s why your database should always be under source control right next to your application code. You deploy the app, and you deploy the database. Like peanut butter and chocolate, they are two great tastes that taste great together.

Not coincidentally, it is very relevant to what OffScale is doing today, trying to make the database an integral part of the development cycle and a first class citizen in a source controlled environment.