Adonis.js — Configuración de base de datos
Leer en blog oficial (elihu.dev): Adonis Introducción
Este es uno de varios artículos explicativos sobre Adonis.js. La intención es abarcar temas simples e incorporar algunos Life Hacks para incrementar la productividad con esta herramienta. Sin más preámbulo entremos en materia.
En este articulo cubriremos el tema de configuración de una base de datos como “MySQL” para comenzar a trabajar con todas las funciones que nos provee este framework.
Concepto de base de datos
Una base de datos es una pieza de software que permite a un sistema integrar y respaldar información de una forma efectiva, segura y versátil. Dependiendo el gestor de base de datos, las funcionalidades cambian, pero esto no representa un problema hoy en día. Gracias a la existencia de librerías ORM (Object Relational Mapping) que nos ayudan a utilizar “Objetos de datos” de forma trasparente, a través de múltiples gestores de base de datos.
Adonis.js cuenta con su propio ORM llamado Lucid. Que utiliza la librería Knex.js para generar el código SQL que se ejecuta al momento de realizar alguna sentencia.
Requisitos
- Proyecto de adonis configurado
- Manejador de base de datos instalado (PostgreSQL, MySQL, SQLite3, MariaDB, Oracle o MSSQL)
Configuración
Para utilizar una base de datos en adonis, deberás tener en cuenta que actualmente adonis tiene integraciones basadas en módulos de node.js con las siguientes bases de datos:
PostgreSQL, MySQL, SQLite3, MariaDB, Oracle y MSSQL.
Para indicar que base de datos utilizaremos, debemos acudir al archivo “.env” (en caso de que no exista, renombra el archivo “example.env”) en la raíz de nuestro proyecto
Este archivo es un YAML con las configuraciones de variables de entorno. En este documento cambiaremos el valor de la base de datos y algunos parámetros extra que nos permitirán conectarnos sin problemas
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASSWORD=***
DB_DATABASE=database
Explicaremos brevemente los parámetros necesarios para operar. Quizá son bastante obvios pero no esta de más.
- DB_CONNECTION: Define el conector a utilizar, para este ejemplo mysql
- DB_HOST: Configuramos la dirección ya sea una IP o el localhost de nuestro ordenador.
- DB_PORT: Define el puerto de la conexión de la base de datos. Para MySQL es el 3306
- DB_USER: Configuramos el usuario que tiene acceso a la base de datos (Utilizaré la común, solo en desarrollo)
- DB_PASSWORD: Colocamos la contraseña del usuario
- DB_DATABASE: Apuntamos a una base de datos en concreto, tendremos que tener una creada previamente (Sin tablas creadas de preferencia)
En mi caso, seleccione MySQL, pero el nombre que colocamos en “DB_CONNECTION” es “mysql”. ¿Porqué?
Bueno, esto se debe a que Adonis buscará es el modulo de Node.js en nuestros paquetes instalados. Y es por ello, que tendremos que realizar la instalación del paquete que servirá como modulo de conexión, dependiendo la base de datos que elijas, este cambia.
Puedes utilizar la tabla que se encuentra en la documentación oficial para tomar una guía. Yo colocaré un extracto.
Para MySQL: npm i mysql
or npm i mysql2
Con esto tendremos configurado el entorno de base de datos en Adonis.
Para corroborar que todo funciona correctamente, podemos ejecutar el comando:
adonis migration:status
El comando nos mostrara las migraciones actuales y su estado. En caso de error obtendríamos algo como esto:
Al tener todo configurado, seríamos capaces de ver las migraciones sin ningún problema.