Superposición del sitio

Laravel: Configuración de la base de datos.

En Laravel 5 se integró el componente PHP dotenv  con el cual podemos trabajar con las variables de entorno de de forma segura desde un archivo llamado .env ubicado en la raiz de nuestro proyecto. En el archivo .env podemos configurar la conexión con nuestro gestor de base de datos.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nombre_base_de_datos
DB_USERNAME=root
DB_PASSWORD=contraseña

Nota: laravel no crea de forma automática la base de datos, así que debes crear esta manualmente.

Desde laravel 5.4 a hoy día en su versión 6.13.1 se sigue presentando un error debido a un cambios realizado en el conjunto de caracteres predeterminado de la base de datos a «utf8mb4», el cual incluye soporte para almacenar emojis, afectando a las versiones anteriores a MySQL 5.7.7 y MariaDB 10.2.2.

Dicho error se presenta al ejecutar una migración, mostrando el siguiente mensaje.

Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

Para solucionar este error debe editar su archivo «AppServiceProvider.php» ubicado en su proyecto en el directorio «app/providers» en dicho archivo encontrara el método boot donde debe establecer una longitud de cadena predeterminada, para ello importe la clase Schema y utilice el método estático «defaultStringLength».

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
//Importa la clase Schema
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //Define la longitud de cadena predeterminada
        Schema::defaultStringLength(191);
    }
}

1 comentario en «Laravel: Configuración de la base de datos.»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *