2009年1月30日金曜日

今日の読書

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
「データベースリファクタリング」に目を通した。

Peasonのサイト。

やっぱりschema(DDL)の管理がテキスト・コンベンションベースなのが気に入らない。ここは構成管理ツールに突っ込む一手だろう。問題はschemaの変更とそれへのデータの追従、とくにデータがでかい場合が問題なのではないだろうか。あと変更量に比してdown timeが十分にとれないときとか。

schemaをいじる仕組み自体が変更を前提に設計されていないのじゃないかと個人的には思う。
serializeの関係で保持しているdataがmultiversionなdbはあるけど、schemaがmutliversionで、かつrollbackを認めるようなDBはあるんだろうか?

sqliteのファイルをgitに突っ込んですむレベルならいいのですが・・・。でもね~dataのsetupをsetUpとtearDownでやると遅いからなぁ・・・。あとsqlhub.processConnection = connectionForURI('sqlite:/:memory:')でやれば軽いけど今度は本番と違うdbになってしまうのと、本番のschemaが正しく書き換わっていることを検証する面倒がある。

sqlobjectのようなO/R mapperだとschemaとclassのsyncが問題なの。最初に作って終わりじゃないから。

>>> Person.createTable()

createじゃなくてsyncしたいんだよね。

0 件のコメント: