2010-12-15 114 views
1

J'ai la question suivante, j'utilise des tables de vérification pour certaines entités de mon projet. Par exemple, s'il y a une table "people" il y aura une table "public_people_audit" (où "public" est le schéma où la table est et "audit" est juste un suffixe qui a été choisi). Maintenant, le fait est que lorsqu'un membre de l'équipe modifie la table "people" et y ajoute une colonne, il peut oublier de le faire sur la table auditive et le système échouera, car il essaiera d'insérer la nouvelle colonne valeur dans la table d'audit et il ne le trouvera pas.Est-il possible de rendre postgres automatiquement mettre à jour la définition de la colonne d'une table auditive?

Je sais que l'équipe doit faire attention et mettre la modification dans les deux tables, mais s'il y a moyen d'automatiser cela, alors si quelqu'un fait un "ALTER TABLE gens ADD COLUMN foo VARCHAR (10)" la même commande sera exécuté sur la table public_people_audit, ce serait très utile.

+0

@nate c, je ne pense pas que postgres supporte encore les triggers DDL – Unreason

Répondre

1

La réponse courte: non.

La réponse la plus longue est que vous pouvez automatiser cela en créant un script rapide. Créez un fichier texte simple répertoriant quelques tables qui nécessitent un audit. Le script lit le fichier texte, examine les colonnes dans les tables de base et s'assure que toutes les colonnes manquantes sont ajoutées à la table d'audit.