データベースの進化的設計
今までデータベースの進化的設計って現実的にどうなのよ。とか思ってたんです。というのも、データベースの変更はプログラムソースの変更に比べて、時間がかかるから、アジャイルなリズムが持てないんじゃないって。
だから、今までデータベースは全体をデザインしてプログラム開発を開始して、開発中の修正はデザインミスってのが多かったんだと思う。
データベースの進化的設計を実現するには、そういう従来の開発をするよりも、データベースの進化的設計をしていった方が開発が楽(手抜きではなく)じゃなきゃいけない。そうじゃなかったら、従来の開発の方がいいもん。従来の開発方法でも多少自動化とかで楽になるじゃんとかそういう気持ちもある。
現在の課題
僕らは、多少の自動化をしていて、開発を廻しているけど、やっていて面倒だったりすることが出てくる。「効率悪い?!」とか思っちゃう時が出てくる。それは、下みたいな点だ。
あるべき姿
こんな機能があったらデータベースの変更の効率が上がるんじゃないかと思う点を下に挙げてみる
- データベースの特定のテーブルのみ反映する。
- テストデータをスキーマの定義によって順番づけてinsertする。
- データベースにデータを入れる前にテストデータの制約違反に気がつける。
- データベース定義をバージョン管理する。各Eclipseプロジェクトで指定のバージョンのデータベースを設計を取り出して、テストしたい。
そんな時「、データベースもアジャイル開発に対応したい!」を読んで、何かを越えるのではないかと魅力を感じました。