2010-12-15 5 views
1

私は以下の質問をしています。私は私のプロジェクト内のいくつかのエンティティに対して監査テーブルを使用しています。例えば、 "people"テーブルがある場合、 "public_people_audit"テーブルがあります( "public"はテーブルがあるスキーマです)。 「監査」は単に選択された接尾辞です)。postgresを自動的に聴覚表の列定義を更新することはできますか?

チームの誰かが「人」テーブルを変更してそのテーブルに列を追加すると、聴覚テーブルでそれを行うのを忘れる可能性があり、システムは新しい列を挿入しようとするため失敗します監査テーブル内の値を見つけられません。

私はチームが注意して両方のテーブルに変更を加える必要があることを知っていますが、もし誰かが "ALTER TABLE people ADD COLUMN foo VARCHAR(10)"コマンドを実行すると、 public_people_auditテーブルで実行されると非常に役に立ちます。

+0

@nate c、私はpostgresがまだDDLトリガーをサポートしているとは思わない – Unreason

答えて

1

短い答え:いいえ。

答えが早い場合は、クイックスクリプトを作成してこれを自動化できます。監査を必要とするいくつかのテーブルをリストした単純なテキストファイルを作成します。スクリプトはテキストファイルを読み取り、ベーステーブルの列を調べ、欠落している列がすべて監査テーブルに追加されていることを確認します。

関連する問題