This tutorial will show you how to logically structure and manage your database development. You will see how the latest tools like bazaar and mysql-sandbox can help you code, test, and release database changes into your production environment with ease and confidence.
The tutorial will open with a discussion on how the stateful nature of data makes database release management different than regular application release management. From there, we will look at different types of database objects, how they change over time, and how to logically organize your database code in a source control environment to facilitate releases. We will look at some scripting that can be done to automate parts of the release process. While Bazaar will be used for demonstration purposes, the methodology is source control agnostic and the concepts can be applied to CVS, Subversion, and other version control applications.
We will demonstrate additional capabilities we now have with our code in source control. We will do some detective work using history and determine when a particular change was made to the database and by whom. We will discuss the importance of proper code formatting, using examples to illustrate how poor formatting makes it difficult to understand changes in the code base.
Once we have structure in source control suitable for a release, we will review tasks related to the system development life cycle. We will go over branching, tagging snapshots, and merging. We will learn how to extract a snapshot in order to migrate database code from development to test and ultimately into production. We will demonstrate how this can be done manually through Bazaar, and also how maven’s release plugin can be used to further automate the process.
The next part of the tutorial will discuss the challenges of maintaining multiple development database instances. We will demonstrate how mysql-sandbox can simplify life by allowing one to easily manage multiple databases for each ongoing branch of database development on a single server.
We will then tie everything together and review fully integrated database development. We will explain how Bamboo can be scheduled to create a nightly build which will clone a seed database for each instance using mysql-sandbox, create a release snapshot for each branch, extract the release from the repository, and execute the release against that branch’s relevant database instance.
Gregory J. Haase has been working in and around the LAMP stack since 2000. His focus started shifting towards database technologies in 2003 and he began making a career out of it in 2006. He is currently a Database Developer at Bill Me Later, Inc., an eBay company.
For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at firstname.lastname@example.org
Download the MySQL Sponsor/Exhibitor Prospectus
For media-related inquiries, contact Maureen Jennings at email@example.com
To stay abreast of conference news and to receive email notification when registration opens, please sign up for the MySQL Conference newsletter.
View a complete list of MySQL contacts.