Conceptos básicos de gobernanza
8 ejemplos para empezar con la gobernanza de Postgres: 5 básicos y 3 intermedios.
Busca en todas las páginas de la documentación
8 ejemplos para empezar con la gobernanza de Postgres: 5 básicos y 3 intermedios.
ls docs/postgresql-style-guide.md # o el equivalente en el repositorio
psql -c "SELECT extname FROM pg_extension ORDER BY 1;"Un documento cubre todas las bases de datos de productos en Postgres.
# Guía de estilo de PostgreSQL (extracto)
- Tablas: snake_case plural (`orders`, `line_items`)
- PK: `bigint GENERATED ALWAYS AS IDENTITY` o `uuid` con valor predeterminado explícito
- Marcas de tiempo: `timestamptz` llamado `created_at`, `updated_at`
- FK: `{nombre_singular_tabla_referenciada}_id`
- No usar palabras reservadas sin comillasRelacionado: Estándares de nomenclatura y documentación - comentarios y ERDs
CREATE ROLE app_read NOLOGIN;
CREATE ROLE app_write NOLOGIN;
CREATE ROLE migrator LOGIN PASSWORD 'vault-rotated';
GRANT app_read TO app_api;
GRANT app_write TO app_worker;
-- migrator posee DDL solo en CIapp_user compartido entre servicios.BYPASSRLS reservado para cuentas de "break-glass" con auditoría.| Extensión | Estado | Propietario |
|---|---|---|
| pgcrypto | Aprobado | platform |
| pgvector | Aprobado | search team |
| postgis | Aprobado | logistics |
| plpython3u | Denegado | - |
SELECT extname, extversion FROM pg_extension;Relacionado: Gobernanza de extensiones y plugins - cadencia
El equipo de servicio escribe SQL → El DBA revisa el nivel → La CI aplica con el rol migrator# ADR-0142: Blob de configuración JSONB en tenants
Estado: Aceptado
Contexto: Indicadores rápidos de tenant antes de GA
Consecuencia: Validar en la aplicación; migrar a columnas para el Q4
Fecha de revisión: 2026-12-01docs/adr/ y se enlazan desde los diagramas ER.-- Trabajo semanal: objetos creados fuera del rol migrator
SELECT obj.object_identity, ev.objid, ev.classid
FROM pg_event_trigger_ddl_commands() ev
JOIN pg_identify_object(ev.classid, ev.objid, ev.objsubid) obj
ON true;
-- Preferir auditoría de ddl a través de pgaudit o disparador de eventos en la cuenta de plataformaCREATE TABLE no es migrator.payments_db y billing_db usan lo mismo:
- guía de nomenclatura
- convenciones de marcas de tiempo
- nomenclatura de políticas RLS (`{tabla}_tenant_isolation`)lock_timeout, etc.).| KPI | Objetivo |
|---|---|
| Migraciones sin etiqueta de nivel | 0 |
| Extensiones no autorizadas | 0 |
| Excepciones de ADR que superan la fecha de revisión | 0 abiertas |
| Asistencia al Consejo | > 80% de equipos representados |
Relacionado: Mejores prácticas de gobernanza - lista de verificación completa
Versiones de la pila: Esta página se escribió para PostgreSQL 18.4 (estable 18, mantenimiento 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x y PostGIS 3.5+.
Revisado por Chris St. John·Última actualización: 16 jul 2026