PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie dokumentieren Sie Ihren Datenbankcode, um Abhängigkeiten zwischen Datenbankobjekten zu erkennen?

Sie können einige dieser Informationen tatsächlich sammeln, indem Sie die internen Abhängigkeitsinformationen der Datenbank abfragen. Wenn etwas von einem anderen abhängt, deutet dies darauf hin, dass es es verwendet. Hier ist eine Beispielabfrage, die Ihnen eine Vorstellung davon gibt, wie Sie die beiden beteiligten Strukturen durchlaufen können:

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;

Informationen zu all diesen internen Bits finden Sie im Systemkatalog Dokumentation.