PostgreSQL y Flask - Errores, conexiones y optimización - Episodio 31

Te subirías a un coche sin saber si tiene gasolina?
Durante semanas estuve centrado en los endpoints, en los tokens, en la autenticación.
Pero algo me hacía ruido...
La API devolvía respuestas, sí.
Pero...
¿qué pasaba si la base de datos fallaba?
¿Estaba seguro de que PostgreSQL estaba siempre activo?
¿La conexión era estable?
¿La había configurado bien desde Flask?
Decidí dejar de asumir cosas y bajar al barro.
Revisar logs, probar conexiones, y entender de verdad si el "latido" de mi sistema era constante o solo un espejismo.
🛠️ Mejoras que implementé para fortalecer la conexión con la base de datos
✅ Verificar si PostgreSQL está activo antes de hacer consultas
Añadí una comprobación inicial para asegurarme de que PostgreSQL está activo antes de ejecutar cualquier consulta.
Y claro, esto me evitó errores tontos cuando la base de datos estaba apagada o no conectada.
sudo systemctl status postgresql
Y también desde código:
try:
db.session.execute('SELECT 1')
except Exception as e:
app.logger.error(f"Base de datos no conectada: {str(e)}")
✅ Uso correcto de DATABASE_URL en Flask
Al principio tenía la URI de la base de datos escrita a mano, con usuario y contraseña en claro. Un error de principiante. Ahora uso variables de entorno y una cadena DATABASE_URL limpia:
import os
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL')
Esto no solo mejora la seguridad, sino que también evita errores si cambio de entorno (local, staging, producción).
✅ Acceso manual a PostgreSQL para pruebas
En lugar de asumir que "todo está bien", ahora entro regularmente a PostgreSQL desde consola para verificar usuarios, permisos y tablas:
psql -U postgres -d saas_relojeria
Esto me ayudó a detectar permisos mal asignados y entender mejor la estructura real de los datos.
💡 Lecciones aprendidas
🔹 No basta con que la API funcione
Si la conexión a la base de datos es frágil, todo el sistema también lo es.
🔹 Las variables de entorno no son un lujo
Son una necesidad si quieres desplegar con seguridad y flexibilidad.
🔹 Haz pruebas reales, no des por hecho que todo está bien
Acceder directamente a PostgreSQL me dio una visibilidad que antes no tenía. Ver es entender.

🧠 Reflexión personal
Confiar en que todo está funcionando sin comprobarlo es como creer que tu coche tiene gasolina solo porque el motor suena bien al arrancar.
Puede que avances... o puede que te quedes tirado a los 5 minutos.
Yo pensaba que la API estaba perfecta, hasta que empecé a ver errores intermitentes sin sentido.
Al final, no era el código.
Sino que era la base de datos que no estaba siempre disponible.
O la conexión que fallaba por una maldita variable mal escrita.
Fue frustrante al principio, sí.
Pero también revelador.
Ahora entiendo que una API no es solo el código que responde, sino todo lo que necesita para hacerlo bien.
Y eso incluye la base de datos, la red, las variables, y hasta los permisos más tontos.
Revisar todo eso me ha dado algo más importante que un sistema estable: tranquilidad mental.
🚂 Próximo paso: Mejorar los logs para tener trazabilidad completa
Ahora que la base de datos está estable, toca mejorar la forma en que registro lo que ocurre.
Logs estructurados, trazabilidad, y prepararme para cuando algo (inevitablemente) falle.
💭 ¿Tú también has vivido ese momento glorioso en que tu base de datos dice "hasta aquí, colega" justo cuando todo parecía ir bien?
Cuéntamelo abajo.
Dale, que no estoy solo en esta movida. 🚀
Si quieres conocer otros artículos parecidos a PostgreSQL y Flask - Errores, conexiones y optimización - Episodio 31 puedes visitar la categoría Proyecto-IA.

Deja una respuesta