Como Crear una Base de Datos Mediante Comando en Laravel 5.8

6 minuto(s)

Demo Github

El popular Framework para Desarrollar proyectos bajo el Lenguaje de Programación PHP me refiero a Laravel, no cuenta consigo con un comando nativo para crear una Base de Datos, hasta la fecha de este tutorial al menos Laravel no cuenta con un comando que haga esta tarea, sin embargo Laravel nos permite crear comandos personalizados para una determinada tarea que necesitemos hacer, entendido esto en este artículo te voy a enseñar a Crear una Base de Datos mediante una comando personalizado, vamos con el tutorial.

Lo primero que haremos es crear un comando personalizado en Laravel 5.8, para esto Abre tu consola de Comandos y ejecuta el siguiente comando


Puedes ver que Laravel cuenta con el comando php artisan make:command el cual nos permite crear un comando personalizado, al final del comando he colocado el nombre de mi comando personalizado el cual es CrearmiBasedeDatos

Luego de ejecutar el comando se ha creado un archivo llamado CrearmiBasedeDatos.php este archivo se encuentra en app > Console > Commands > CrearmiBasedeDatos.php (Abre este archivo)


En el archivo CrearmiBasedeDatos.php voy a colocar el código de mi comando con los argumentos y tareas que este va realizar, en este caso la tarea que va a realizar será crear una Base de Datos. Mencionar que estoy usando el motor de Base de Datos MySQL el cual es el más optimo para trabajar con PHP.

Configurando mi comando Personalizado

Bien dentro del archivo CrearmiBasedeDatos.php tengo una  variable creada por defecto llamada $signature dentro de ella voy a definir el comando que debe ejecutare en la consola de comandos para crear la Base de Datos

Le voy a colocar tres valores que son nombrebd, tipo y cotejamiento


Luego tengo otra variable creada por defecto llamada $description, dentro de esta variable sencillamente voy a describir que tarea realiza mi comando


También se nos ha creado la función handle() por defecto, dentro de esta voy a crear un trycatch dentro del try voy a colocar el código que va realizar la creación de la Base de Datos.

voy a crear 3 variables las cuales hacen mención o tienen los mismos nombres de cada argumento de mi comando los cuales son nombrebd, tipo y cotejamiento


A la variable $nombrebd le asigno el argumento nombrebd y la variable $cotejamiento le asigno igualmente el argumento cotejamiento

A mi variable $tipo le voy asignar el argumento tipo y también voy a leer el motor de Base de Datos que tengo, en este caso debería leer MySQL, lo hago con la constante definida ATTR_DRIVER_NAME que lee y me devuelve el controlador o motor de Base de Datos con el que cuento en mi servidor.

Luego voy a usar un switch y le paso la variable $cotejamiento, en este switch voy a crear argumentos de cotejamientos de caracteres para la Base de Datos que mi comando va a crear


En el switch anterior, lo que hace es que si en la consola de comandos le indico que cree mi base de datos según el cotejamiento que le asigne, por ejemplo si le asigno el cotejamiento utf8mb4-unicode, entonces me ejecutará el comando CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci cuando se lleve a cabo la creación de mi Base de Datos.

Por último voy a proceder a crear la Base de Datos y mediante ifelse verifico si es que la Base de Datos ya existe, si es así que me muestre un mensaje que diga: La Base de Datos con el nombre ‘$nombrebd’ ya existe ! y si no existe pues que proceda con la creación de la Base de Datos


En la parte superior voy a llamar al Trait DB para poder usar la Base de datos y el PDO


Eso es todo, finalmente dentro del catch lanzo una excepción


A continuación el código completo de mi archivo CrearmiBasedeDatos.php

Registro del Comando en Laravel

Ya tenemos creado nuestro comando, pero Laravel 5.8 nos pide que lo registremos en el core de comandos, para esto abre el archivo Kernel.php el cual se encuentra en app > Console > Kernel.php (Abre este archivo)


En el archivo que he abierto Kernel.php dentro de la variable $commands voy a registrar mi comando que he creado


Eso es todo, ya puedo ejecutar el comando para crear una Base de Datos.

Comando Personalizado

Bien si abro mi consola de comandos debo de ejecutar los argumentos de mi comando creado, entonces debo de ejecutar el comando


En donde:

  • zapatos: Es el nombre de la Base de Datos
  • mysql: Es el tipo o motor de Base de Datos
  • utf8mb4-unicode: Es el cotejamiento de la Base de Datos

Reviso mi phpMyAdmin puedo ver que se me ha creado la base de datos zapatos con el cotejamiento utf8mb4-unicode

Espero que te sirva de mucho este tutorial y se te haga menos complicado la creación de Bases de Datos con Laravel.

Video

Si deseas una guía mas detallada para crear paso a paso este Comando para Crear una Base de Datos en Laravel 5.8 te dejo este video que se encuentra en mi canal de Youtube junto con otros tutoriales y contenidos

Notas

  • Los Pasos y opciones mencionadas en este capitulo del tutorial pueden cambiar, esto no depende de nosotros, si no de la empresa que da soporte a Laravel, que suele cambiar sus opciones en futuras versiones.

 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.