Base de datos

De Wiki Proyectos Beta
Ir a la navegación Ir a la búsqueda

Bases de Datos Compatibles con Laravel

Laravel es un framework flexible que soporta múltiples sistemas de gestión de bases de datos (SGBD), lo que permite a los desarrolladores elegir la mejor opción según sus necesidades específicas. Los SGBD más comunes que se utilizan con Laravel incluyen:

  • MySQL/MariaDB
MySQL es una de las bases de datos relacionales más populares y es ampliamente utilizada en aplicaciones web. MariaDB es un fork de MySQL que es 100% compatible y ofrece mejoras en rendimiento y seguridad. Laravel ofrece soporte nativo para ambas:
Configuración: La configuración para MySQL y MariaDB se realiza en el archivo config/database.php:
'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],
  • PostgreSQL
PostgreSQL es una base de datos relacional avanzada que es conocida por su cumplimiento de estándares, extensibilidad y robustez. Es una excelente opción para aplicaciones que requieren características avanzadas como tipos de datos personalizados, transacciones complejas y consultas sofisticadas.
Configuración: La configuración para PostgreSQL es similar a la de MySQL, pero con un controlador diferente:
'pgsql' => [
    'driver' => 'pgsql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '5432'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
    'schema' => 'public',
    'sslmode' => 'prefer',
],
  • SQLite
SQLite es una base de datos ligera y autosuficiente que se guarda en un solo archivo. Es ideal para aplicaciones pequeñas, desarrollo local, pruebas, y proyectos que no requieren un SGBD completo.
Configuración: Configurar SQLite en Laravel es sencillo; solo necesitas especificar la ruta del archivo de la base de datos:
'sqlite' => [
    'driver' => 'sqlite',
    'database' => env('DB_DATABASE', database_path('database.sqlite')),
    'prefix' => '',
],

Puedes crear la base de datos con el siguiente comando:

touch database/database.sqlite
  • SQL Server

SQL Server es un SGBD desarrollado por Microsoft. Es adecuado para aplicaciones empresariales que requieren integración con otros productos de Microsoft, como .NET y Azure.

Configuración: La configuración para SQL Server es la siguiente:
'sqlsrv' => [
    'driver' => 'sqlsrv',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '1433'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
    'schema' => 'dbo',
    'sslmode' => 'prefer',
],
  • Redis
Redis no es un sistema de base de datos relacional, sino una base de datos en memoria basada en clave-valor. Es ideal para almacenamiento en caché, colas de tareas y almacenamiento temporal de datos. Laravel tiene soporte nativo para Redis a través de su componente Cache y Queue.
Configuración: Puedes configurar Redis en el archivo config/database.php:
    'redis' => [

        'client' => env('REDIS_CLIENT', 'phpredis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
        ],

        'default' => [
            'url' => env('REDIS_URL'),
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'username' => env('REDIS_USERNAME'),
            'password' => env('REDIS_PASSWORD'),
            'port' => env('REDIS_PORT', '6379'),
            'database' => env('REDIS_DB', '0'),
        ],

        'cache' => [
            'url' => env('REDIS_URL'),
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'username' => env('REDIS_USERNAME'),
            'password' => env('REDIS_PASSWORD'),
            'port' => env('REDIS_PORT', '6379'),
            'database' => env('REDIS_CACHE_DB', '1'),
        ],

    ],

Cabe mencionar que los SGBD anteriormente mencionados son los más comunes. Laravel también puede ser configurado para trabajar con otros sistemas de bases de datos mediante extensiones o paquetes adicionales.