Saludos a tod@s. Si tu objetivo es adquirir y compartir conocimiento eres totalmente bienvenido a este tutorial.
Hoy veremos como podemos desplegar una API creada con Node y Postgres en Vercel, una increible plataforma para desplegar proyectos realizados en gran cantidad de frameworks de node para front y back end.
Para este tutorial usaremos el proyecto final del Curso de Backend con Node.js: Base de Datos con PostgreSQL. Si ya realizaste el Curso de Backend con Node.js: API REST con Express.js, deberías haber completado primeros pasos y puedes pasar directo al #4
Como paso inicial es necesario que tengas una cuenta en la página oficial de Vercel. Si aún no la tienes, te invito a crearla antes de pasar al siguiente punto. Puedes enlaz
NOTA: No es necesario adquirir un plan de pago para realizar el despliegue.
Es importante que enlaces tu cuenta con tu proveedor de git (donde almacenaste tu repositorio). Esto es necesario para desplegar tu proyecto en próximos pasos.
Una vez tenemos creada nuestra cuenta nos dirigimos a la vista general y después a la opción de crear un nuevo proyecto.
Para poder desplegar nuestro proyecto solo es necesario configurar el nombre del proyecto a nuestro gusto y el framework como Other. Con solo estas 2 configuraciones ya podemos dar click en nuestro botón de Deploy y ver como Vercer hace su magia.
Una vez se hayan realizado los procesos internos de Vercel, se nos desplegará nuestro proyecto con un subdominio único. No te asustes si vez un error en el preview de este despliegue, es normal que tengamos un error ya que no tenemos una conexión valida a una base de datos. Una vez realizado el despliegue, no dirigiremos al dashboard de nuestra API.
Vercel nos permite crear y desplegar distintas fuentes de almacenamiento usarlas junto a nuestros despliegues. En este tutorial usaremos una de las bases de datos relacionales mas conocidas, Postgres. Para ello, iremos a la ventana de almacenamiento, seleccionamos la opción postgres y aceptamos (preferiblemente después de leer :3 ) los términos de uso.
NOTA: No es necesario adquirir un plan de pago para crear o usar una base de datos
Después de seleccionar nuestro almacenamiento procedemos a crear nuestra base de datos. En este paso, solo debemos configurar un nombre y región, los cuales ya tiene valores por defecto que se pueden mantener.
Con nuestra base de datos creada ahora solo nos queda configurar la conexión desde nuestra API. Para esto deberíamos obtener la url de nuestra DB y asignarla como una variable de entorno en nuestra API, sin embargo, Vercel nos facilita este paso permitiéndonos establecer un nombre para nuestra variable y los entornos en los que se desea usar. Para el despliegue solo es necesario el entorno de producción sin embargo se puede seleccionar también el de preview en caso de querer hacer otras pruebas.
Tras conectar nuestra base de datos se nos redirigirá a un panel informativo con estadísticas de la base de datos y ejemplos de conexión con diferentes librerías. En nuestro caso seguiremos la configuración para la librería pg
Aunque ya tenemos una conexión establecida desde Vercel, aún no hemos configurado esta conexión en código. Para esto debemos obtener la variable de ambiente creada (DATABASE_URL) a demás de la variable que almacena el entorno (NODE_ENV), en mi caso se agregó una variable para el motor de base de datos (DB_ENGINE) la cual está establecida como ‘postgres’
Con nuestras variables obtenidas, nos dirigiremos a la conexión. En este ejemplo nos conectamos a la base de datos usando la librería Sequelize la cual hace uso de pg para realizar la conexión. Para que no se genere un error debemos indicar que en el entorno de producción se integre la librería pg. A demás usamos nuestra URL obtenida de las variables de entorno.
Hasta el momento ya tenemos una base de datos creada, desplegada y conectada a nuestra api, lo cual ya nos debería permitir realizar consultas, sin embargo estas no podrán retornar información de tablas que aún no existen. Para esto es indispensable ejecutar nuestras migraciones.
Para correr nuestras migraciones debemos configurar el ssl en la propiedad dialectOptions, esto con el objetivo de podernos conectar correctamente a nuestra base de datos remota.
NOTA: Si queremos ejecutar las migraciones en nuestra base de datos remota desde nuestro local debemos actualiza nuestra variable de entorno local a producción NODE_ENV="production"
Con nuestras configuraciones realizadas podremos ejecutar nuestras migraciones en remoto desde nuestro local.
Vercer ofrece un servicio de host increible para desplegar nuestras aplicaciones. Una de sus mejores características es que hace un despliegue por cada cambio que hagamos en nuestra rama principal. Por lo tanto, tras subir nuestros últimos cambios de configuración, automáticamente tendremos nuestra aplicación actualizada en producción.
Hurra! Has podido desplegar tu proyecto en Vercel, una de las mejores herramientas para desplegar nuestros proyectos de desarrollo.
Espero que hayas podido culminar exitosamente este tutorial. Me llena de satisfacción ayudarte a progresar en tus estudios y proyectos. Espero que no hayas tenido ningún inconveniente, pero de ser así no dudes en preguntar para que poder ayudarte.
Gran tutorial! 👏👏👏