While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is the DBA left sitting in the corner? Are you scared to change your database because other applications are using it? Do you have difficulty rolling out incremental changes to your databases? Does your database prevent you from releasing your software more frequently? Using real-world experiences- and the principles outlined in Ambler and Sadalage's Refactoring Databases, this paper aims to demonstrate how to take control of the database and make it possible to incrementally evolve and improve its design. With these techniques the database need no longer be the bottleneck in your develop-test-deploy process. This paper features ideas on how to best use open source tools including Ant, CruiseControl and dbdeploy. The nuances of one particular database refactoring over another are not addressed here. Rather, the intention is to describe the features of a development environment and toolkit that make the creation, testing and onward deployment of database refactorings easier to manage. SETTING YOURSELF UP FOR SUCCESS To get the most from the techniques described in this paper, certain working practices are assumed. These assumptions are based on a particular combination of tools and environments; a typical project setup is described below. TOOLS Some of the tools discussed here may be over and above what one finds in a DBA’s standard toolkit. The assumption is that tools such as text editors, SQL clients, IDE, source control management (SCM) software and DBMS are already in place. The following table lists some additional and possibly more unusual tools used in this paper. Tool type Purpose Specific tool used in this paper Alternatives include Build tool Automates the steps necessary to build and deploy software. Continuous integration (CI
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.