LLを業務に突っ込みたい

2006年07月29日(土) 00:18

LLの使用が許されそうな案件が降ってきました。
当然Djangoを突っ込みたいのですが、パッチをあてていないDjangoでOracle9iを使おうとするとちょっと大変です。
そもそもLLの使用が許されそうといっても、既存のスキーマに存在するテーブルを参照したりするので、ちょっとやらしいのです。
普段の業務DBに対応するためには、次のようなDBテクノロジの邪魔をせずに適切に扱ってくれることが要件です(実際は文字型系のセマンティクスも通常とちょっと違ったりする)。
  • ビューを扱える(READのみでよい。更新は指示をしないので勝手に更新しようとしなければ良い)
  • シノニムを扱える(テーブルと同様に扱いたい)
  • トリガーの動作を邪魔しない(Proxy型等UPDATEのタイミングを勝手に制御されると困る)

RailsのActiveRecordは指定したテーブル・ビュー・シノニムを難なく扱うことができました。
DjangoはOracleのリバースが実装されていません(手でモデルを書けば難なく扱えるはず)。
Djangoはおいしい機能を利用しようとするとDjango用のユーザテーブルが必要です。Ldapで認証して、認証より細かい単位で利用者を特定+権限設定するためのテーブルをみて(ここまでは普段の業務アプリで常にやる)、Djangoユーザテーブルにユーザがいなければ追加するので3重管理です。
どうせならRailsを使ってみるのも悪くないのかな、と。

以下、愚痴です。わかってます、今風のデータベース設計じゃない所にRailsを突っ込もうとしているのが悪いんです

ビュー・シノニム・トリガーくらいがO/Rマッパの要件かな、と思っていたのですがRailsに踏み込んでみて愕然としました。
なんじゃ? development/test/production?
rake test 時にdevelopmentデータベースからtestデータベースにスキーマをコピーする?
テーブルしかdumpできてないくせに勝手なことすんなこらっ。どうやってオフにするんじゃい!?
頼むから、テストDBの掃除しなくていいから、開発DBでテストさせてください。。。
テスト操作のデータが入っていたら、テストが誤動作するから?そんなテスト書くなっつの。

とてもスキーマのコピーは正しくしてくれそうにないので、testDBは全部シノニムにして、間違えてrake実行しても問題がないように(drop tableならシノニムは消えない)しようという案あり。
djangoでOracle9iできちんと使えるようにした方が素直なんじゃ?
RailsはレイヤーとしてはApache JServ(tomcatだと高機能過ぎ)みたいだなと感じているのは私だけ?
DjangoやTurboGearsとはレイヤーが違う気がする。
近々複数のRails使いにあえる機会があるので、いろいろ聞いてみよう。どうするかはそれから検討か。


 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar