2012-01-16 4 views
3

私の質問は小さな答えではないかもしれませんが、できる限り具体的に説明し、 。一般的なコードを見直してDBの変更を確認する方法/ツール/アプローチ

基本的には、データベース修正コードを特定/検出するために、社内で書かれたコードを確認するアプローチ/方法論についていくつかの研究を行っています。つまり最終的には挿入/更新/削除アクションです。

私たちが純粋なSQLだけを書いていたのであれば、答えは非常に簡単です。しかし、現実には、我々は、コードの自然の中でかなりの数のバリエーションがあります。

系SQL(MS SQLおよびOracleの)純粋なSQL文については

を、私は挿入/更新の単純なテキスト検索を想定します/キーワードを削除すれば十分でしょうか?直接SQL文を実行することもできるコードの場合

プログラム(などのC#やJava、ASP、)

、我々はまだ単純なテキスト検索を行うことができます。

しかし、動的にSQL文を生成/実行できるライブラリを使用すると、ピンポイントが非常に難しくなります。私はまだプロジェクトのリファレンス検索を行い、そのようなライブラリが使用されているかどうかを確認することができますが、この場合のdb変更コードの検索は、コード/プロジェクト自体を見ていないとかなり難しいでしょう。

他のPOVからは、レビュープロセスでSQLプロファイラをテスト環境で実行し、変更の各ケースを経て最終的にdb変更アクションを実行するかどうかを確認する有効な方法となります。これは、上記の数字2の困難に取り組むことができると思います。しかし、変更に多量の変数や変更が含まれていると効率的でない場合があります。

(このような大規模な変更に対してdb変更コードが存在することはほぼ確実であると主張するかもしれませんが、責任ある開発者はその情報を提供できるはずです。変更にはdbの変更操作が含まれていますが、そうではないと主張するときは、レビュープロセスでそのことを証明する必要があります)。

私はこの質問に簡単な回答はないと思いますコメントを発するのに自由に感じてください:)

ありがとうございました。

+0

私はあなたの質問で回答を見逃しているかもしれませんが... DBはローカルまたはリモートですか(ローカルホストかネットワーク上のどこか)?どのようにOracleに接続していますか? –

+0

Oracleは、手動で接続することができます(SQLスクリプトを直接適用します)。または、JDBC – SunnyHoHoHo

答えて

1

あなたは私がtheres簡単な解決策とは思わないようだ。

私は、おそらく新しいバージョンに適用されていると確信しているsql server schema triggersについてのthisリンクを見つけました。これはoracleもサポートしています。

これは、おそらくそうでないと思われる領域を簡単に見つけることができるかどうかを判断するために、これらのddlステートメントを試してみるために何らかの広範な統合テストを実行する必要があります。それらのすべて。

nitriqのようなコードレビューでは、コードを特定のものに絞って検索することができれば、これらのケースを追跡するのに役立ちます。

おそらく、データベース操作のために単一の連絡先を使用するようにアプリケーションをリファクタリングしてから、そのコンポーネント内でこれらのddlステートメントのチェックを追加することをお勧めします。

+0

DDL-haを介して接続します。これについては考えなかった。ありがとう。 – SunnyHoHoHo

関連する問題