Articoli

Come configurare Laravel per utilizzare più database nel tuo Progetto

Normalmente un progetto di sviluppo software prevede l’utilizzo di un DataBase per l’archiviazione dei dati in modo strutturato.

Per progetti specifici potrebbe essere necessario utilizzare più DataBase.

Con Laravel, per utilizzare più database, dobbiamo configurare il framework e in particolare il file di configurazione delle connessioni.

Vediamo come fare per configurare Laravel all’utilizzo di più DataBase.

Tempo di lettura stimato: 4 minuti

File database.php in config directory

Questo file si trova nella directory config della tua applicazione Laravel.

Nel file database.php è possibile definire più connessioni al database. Ogni connessione deve essere definita come un array. L’array dovrebbe contenere le seguenti informazioni:

  • driver: il driver del database da utilizzare;
  • host: il nome host o l’indirizzo IP del server del database;
  • port: il numero di porta del server del database;
  • database: il nome del database;
  • username: il nome utente per la connessione al database;
  • password: la password per la connessione al database;

Ad esempio, il codice seguente definisce due connessioni al database, una per MySQL e una per PostgreSQL:

'connections' => [
        'sqlite' => [
            'driver' => 'sqlite',
            'url' => env('DATABASE_URL'),
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
        ],

        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            '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'),
            ]) : [],
        ],

        'pgsql' => [
            'driver' => 'pgsql',
            'url' => env('DATABASE_URL'),
            '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' => '',
            'prefix_indexes' => true,
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],

Come connettersi al DB

Dopo aver definito le connessioni al database, puoi utilizzarle nel tuo codice Laravel. Per fare ciò, puoi utilizzare la facade del database. La facade del database fornisce un’interfaccia unificata per l’interazione con i database.

Per passare da una connessione al database all’altra, è possibile utilizzare il metodo Connection() della facade Database. Il metodo Connection() prende come argomento il nome della connessione al database.

Ad esempio, il codice seguente passa dal DB mysql al DB pgsql:

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.
use Illuminate\Support\Facades\DB;

DB::connection('pgsql');

Una volta passato a una connessione al database, è possibile utilizzarla per eseguire query e interagire con il database.

Vantaggi dell’utilizzo di più database in Laravel

Esistono numerosi vantaggi nell’utilizzo di più database in Laravel, tra cui:

  • Migliori prestazioni: l’utilizzo di più database può migliorare le prestazioni dell’applicazione separando dati di tipo diverso. Ad esempio, potresti archiviare i dati utente in un database e i dati di prodotto in un altro database.
  • Maggiore sicurezza: l’utilizzo di più database può migliorare la sicurezza dell’applicazione separando dati di tipo diverso. Ad esempio, potresti archiviare dati sensibili in un database e dati meno sensibili in un altro database.
  • Maggiore scalabilità: l’utilizzo di più database può rendere la tua applicazione più scalabile consentendoti di distribuire i tuoi dati su più server.

Best practice per l’utilizzo di più database in Laravel

Ecco alcune best practice per l’utilizzo di più database in Laravel:

  • Utilizza nomi descrittivi per le connessioni al database: ciò renderà più semplice identificare e gestire le connessioni al database.
  • Utilizza il metodo Connection() per passare da un DB a un altro: questo ti aiuterà a evitare di eseguire accidentalmente query sul database sbagliato.
  • Utilizza un sistema di migrazione del database per gestire gli schemi del database: questo ti aiuterà a mantenere sincronizzati gli schemi del database su tutti i tuoi database.

Conclusione

L’utilizzo di più database in Laravel può essere un ottimo modo per migliorare le prestazioni, la sicurezza e la scalabilità della tua applicazione. Seguendo le migliori pratiche descritte in questo articolo, puoi utilizzare più database in Laravel in modo efficace.

Letture Correlate

Ercole Palmeri

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Articoli recenti

I pagamenti online: ecco come i servizi di streaming ti fanno pagare per sempre

Milioni di persone pagano per i servizi di streaming, pagando mensilmente la quota di abbonamento. È opinione comune che tu…

29 Aprile 2024

Veeam presenta il supporto più completo per il ransomware, dalla protezione alla risposta e al ripristino

Coveware by Veeam continuerà a fornire servizi di risposta agli incidenti di cyber-estorsione. Coveware offrirà funzionalità di forensics e remediation…

23 Aprile 2024

Rivoluzione Verde e Digitale: Come la Manutenzione Predittiva sta Trasformando il Settore Oil & Gas

La manutenzione predittiva sta rivoluzionando il settore dell'oil & gas, con un approccio innovativo e proattivo alla gestione degli impianti.…

22 Aprile 2024

L’autorità antitrust del Regno Unito lancia l’allarme BigTech su GenAI

La CMA del Regno Unito ha lanciato un avvertimento circa il comportamento delle Big Tech sul mercato dell’intelligenza artificiale. La…

18 Aprile 2024