PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment documentez-vous votre code de base de données pour voir les dépendances entre les objets de la base de données ?

Vous pouvez en fait collecter certaines de ces informations en interrogeant les informations internes "dépend" de la base de données. Si quelque chose dépend d'un autre, cela suggère qu'il l'utilise. Voici un exemple de requête pour vous donner une idée de la façon de parcourir les deux structures concernées :

SELECT
  c1.oid as relid,
  n1.nspname || '.' || c1.relname as relation,
  c1.relkind,
  c2.oid as relid,
  n2.nspname || '.' || c2.relname as dependency,
  c2.relkind
FROM 
  pg_depend d,
  pg_class c1,
  pg_namespace n1,
  pg_class c2,
  pg_namespace n2
WHERE 
  d.objid = c1.oid AND
  c1.relnamespace = n1.oid AND 
  n1.nspname NOT IN('information_schema', 'pg_catalog') AND
  n1.nspname !~ '^pg_toast' AND
  d.refobjid = c2.oid AND
  c2.relnamespace = n2.oid AND 
  n2.nspname NOT IN('information_schema', 'pg_catalog') AND
  n2.nspname !~ '^pg_toast' AND
  c1.oid != c2.oid
GROUP BY n1.nspname,c1.relname,c1.oid,c1.relkind,
  n2.nspname,c2.relname,c2.oid,c2.relkind
ORDER BY n1.nspname,c1.relname;

Des informations sur tous ces bits internes peuvent être trouvées dans le catalogue système documents.