usar supabase en render.com

en render:

en las variables de entorno  de la aplicacion

  • SPRING_DATASOURCE_URL: jdbc:postgresql://[EL_HOST_QUE_TE_DA_SUPABASE]:5432/postgres (Asegúrate de que empiece por jdbc:postgresql://.).

  • SPRING_DATASOURCE_USERNAME

  • SPRING_DATASOURCE_PASSWORD

  • Muchas veces, al conectar Spring Boot con Supabase desde un servidor externo como Render, la conexión falla porque falta el certificado SSL.

  • agregar al final de la URL:

  • ?ssl=true&sslmode=require


  • Spring Boot usa HikariCP por defecto. Si no puede establecer la conexión inicial con Supabase en menos de 30 segundos, el "Bean" de la base de datos se crea incompleto y lanza ese NullPointerException.


  • Solución: Añade estas variables de entorno en Render para darle más tiempo y estabilidad a la conexión:

    • SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT: 30000 (30 segundos)

    • SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE: 5 (El plan gratuito de Supabase tiene un límite de conexiones, no pongas un número alto aquí).


    Si ya configuraste las variables de entorno en el panel de Render, Spring Boot las tomará como prioridad sobre cualquier archivo. Sin embargo, es una buena práctica dejar el archivo preparado para que "escuche" las variables de entorno. Así, si alguna vez cambias de servidor, solo cambias la variable en el panel y no tocas el código.
     
    en application-prod.properties:
    # Configuración de Hikari (el pool de conexiones) spring.datasource.hikari.connection-timeout=${SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT:30000} 
    spring.datasource.hikari.maximum-pool-size=${SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE:5}

    Agrega esta variable de entorno en Render para forzar a Java a usar IPv4:

    • Key: JAVA_TOOL_OPTIONS

    • Value: -Djava.net.preferIPv4Stack=true


    En SUPABASE:




    click en "connect" para obtener los valores de conexión:

    y usar los de Session:



    Comentarios

    Entradas populares de este blog

    crear un properties local + implementar actuator/health

    subir un proyecto local a un repositorio de github