Bonjour,

Je suis en train de tester plusieurs framework pour réécrire une application.
Pour la base de données, on doit normalement mettre les infos dans le fichier .env
Mais voilà, j'ai plusieurs base de données.
comment faire pour utilisiser l'une ou l'autre ?

Merci pour vos réponses.

Pierre.

PS : J'ai le même problème avec Symfony

2 réponses


Bonjour.
Il te suffit dans le fichier env de définir toutes les infos de la base de données par défaut par exemple, ensuite dans le fichier database.php situé dans le dossier config de dupliquer la configuration de la clé mysql en donnat par exemple en nom de clé à quoi la base de données est reliée et de définir les valeurs qui changent par les bonnes valeurs, par exemple :

/** ... **/
'mysql' => [ /** Configuration par défaut **/
    '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' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
],
'blog' => [ /** Une autre config **/
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => 'blog',
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
],
/** ... **/

Ensuite lorsque tu as par exemple besoin d'utiliser la base de données blog, il te suffit de faire :

$blogDatabase = DB::connection('blog');
$posts = $blogDatabase->select(...);

Source : Database: Getting Started » Using Multiple Database Connections.

Salut,
Merci pour t réponse ;)
Je cours voir le lien ;)

@pluche.
Pierre