Continuous Integration And Version Control for Databases

早く翻訳版でないかな。>InfoQ
(2008/3/1追記)出た。→継続インテグレーションとデータベースのバージョン管理


"Three Rules for Database Work"とは,この3つ。


1. Never use a shared database server for development work.
ずっと,DBは共有して当たり前と思ってたけど,最近は「開発者1人に1つ」って考えが勝ってきたな。
でも,なかなか実践できてない。Oracle XE使うために「これからは,コードセットはAL32UTF8で」とか言いたい。:-D


2. Always Have a Single, Authoritative Source For Your Schema.
これは実践できてるハズ。ただ,DB屋さんとアプリ屋さんには文化の壁があって,アプリ屋さんはCVSSubversionなどのSCM使ってるのに,DB屋さんはWindowsの共有フォルダにスキーマ保存しておくとか,よくある。
できれば,DB屋さんもアプリ屋さんの環境に巻き込みたい。


3. Always Version Your Database
これは発想になかった。アプリはSCMにタグ打ったりして,簡単に昔のバージョンに戻せるんだけど,DBはそうはいかない(つうか,そこまで考えたことがない)。
ふと思えば,バージョンごとにインスタンス(ないしスキーマ)変えて,常に全部残しておけばいいんじゃね?とか思ったんで,今度試す。

In a future post, I'll describe an approach I've used for database versioning that has worked well for many years of commercial development.

Three Rules for Database Work

とか言ってたら,もう書いてあった。エライ。
でもたくさんあって読めない。:-(