Information Technology Reference
In-Depth Information
• Entity relationship diagrams
• Test data for different environments
• Specific database configurations
For numerous project scenarios, you should be able to recreate
your entire database from “scratch” using the scripts in your version
control repository (for large data sets, you may store data export
scripts rather than row-by-row DML scripts). Once you've applied all
your database assets to the version control repository, you'll have a
history of all of the database changes, so you can run prior versions of
the database with the latest code (or with prior versions of the code as
well). This also reduces the gridlock on projects when all the develop-
ers need to go to the DBA for everything. Once database assets are in
one place, you can make a change to a database column, perform a pri-
vate build on your machine, commit it to the version control system,
and know you will receive feedback after the integration build is run.
Sometimes during development the database will need to undergo
large-scale changes. In most cases, these changes will require the
expertise of several people on the team and a longer duration to com-
plete. When such situations arise, it is best to create a task branch 5 to
commit the changes back into the version control repository rather
than break the mainline and slow the activity of the rest of the team.
Without CDBI, often the DBA will be making these large-scale data-
base alterations, and he may be less suited to make all the changes at
once to the database, dependent application source code, associated
test code, and shared scripts because he may lack the knowledge of the
source code that developers are writing.
Just as you have a consistent directory structure for your source
code, you'll want to do the same for your database. Define the location
of database assets—probably somewhere in the implementation/con-
struction directory where your source code is located. In your database
directory, define subdirectories for each of the database entity types
and environments. Listing 5-7 shows a directory structure for an
implementation directory (using a MySQL database).
5. In Software Configuration Management Patterns, Stephen P. Berczuk and
Brad Appleton describe a task branch as having “part of your team perform a dis-
ruptive task without forcing the rest of the team to work around them. . . .”
Search WWH ::




Custom Search