Artikoli

Kif tikkonfigura Laravel biex tuża databases multipli fil-Proġett tiegħek

Normalment proġett ta' żvilupp ta' softwer jinvolvi l-użu ta' Database għall-ħażna tad-dejta b'mod strutturat.

Għal proġetti speċifiċi jista' jkun meħtieġ li jintużaw diversi databases.

Ma 'Laravel, biex nużaw databases multipli, għandna bżonn nikkonfiguraw il-qafas u b'mod partikolari l-fajl tal-konfigurazzjoni tal-konnessjonijiet.

Ejja naraw kif tikkonfigura Laravel biex juża databases multipli.

Ħin tal-qari stmat: 4 minuta

File database.php in config direttorju

Dan il-fajl jinsab fid-direttorju config tal-applikazzjoni tiegħek Laravel.

Fil-fajl database.php huwa possibbli definish konnessjonijiet tad-database multipli. Kull konnessjoni trid tkun definited bħala firxa. Il-firxa għandu jkun fiha l-informazzjoni li ġejja:

  • driver: is-sewwieq tad-database li għandu juża;
  • host: l-isem host jew l-indirizz IP tas-server tad-database;
  • port: in-numru tal-port tas-server tad-database;
  • database: l-isem tad-database;
  • username: l-isem tal-utent għall-konnessjoni mad-database;
  • password: il-password għall-konnessjoni mad-database;

Per eżempju, il-kodiċi li ġej defiHemm żewġ konnessjonijiet ta' database, waħda għal MySQL u waħda għal 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',
        ],

Kif tikkonnettja mad-DB

Wara defiLadarba jkollok konnessjonijiet tad-database, tista 'tużahom fil-kodiċi tiegħek Laravel. Biex tagħmel dan, tista 'tuża l- facade tad-database. Hemmhekk facade database tipprovdi interface unifikata għall-interazzjoni ma 'databases.

Biex taqleb bejn il-konnessjonijiet tad-database, tista' tuża l-metodu Connection() ta ' facade Databases. Il-metodu Connection() jieħu l-isem tal-konnessjoni tad-database bħala argument.

Pereżempju, il-kodiċi li ġej imur mid-DB mysql għad-DB pgsql:

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.
use Illuminate\Support\Facades\DB;

DB::connection('pgsql');

Ladarba taqleb għal konnessjoni tad-database, tista' tużaha biex tagħmel mistoqsija u jinteraġixxi mad-database.

Benefiċċji tal-użu ta 'databases multipli f'Laravel

Hemm bosta benefiċċji għall-użu ta' databases multipli f'Laravel, inklużi:

  • Prestazzjoni aħjar: L-użu ta 'databases multipli jista' jtejjeb il-prestazzjoni tal-applikazzjoni billi tissepara data ta 'tipi differenti. Pereżempju, tista' taħżen data tal-utent f'database waħda u data tal-prodott f'database oħra.
  • Żieda fis-sigurtà: L-użu ta' databases multipli jista' jtejjeb is-sigurtà tal-applikazzjoni billi tissepara data ta' tipi differenti. Pereżempju, tista' taħżen data sensittiva f'database waħda u data inqas sensittiva f'database oħra.
  • Skalabbiltà akbar: L-użu ta' databases multipli jista' jagħmel l-applikazzjoni tiegħek aktar skalabbli billi jippermettilek tqassam id-dejta tiegħek fuq servers multipli.

L-aħjar prattiki għall-użu ta' databases multipli f'Laravel

Hawn huma xi l-aħjar prattiki għall-użu ta' databases multipli f'Laravel:

  • Uża ismijiet faċli għall-konnessjonijiet tad-database: Dan jagħmilha aktar faċli biex jiġu identifikati u mmaniġġjati l-konnessjonijiet tad-database.
  • Uża l-metodu Connection() li jmorru minn wieħed DB għal ieħor - dan jgħinek tevita li taħdem aċċidentalment query sul database ħażin.
  • Uża sistema ta' migrazzjoni tad-database biex timmaniġġja l-iskemi tad-database tiegħek - dan jgħinek iżżomm l-iskemi tad-database tiegħek sinkronizzati madwar l-iskemi kollha tiegħek. database.

konklużjoni

L-użu ta' databases multipli f'Laravel jista' jkun mod tajjeb ħafna biex ittejjeb il-prestazzjoni, is-sigurtà u l-iskalabbiltà tal-applikazzjoni tiegħek. Billi ssegwi l-aħjar prattiki deskritti f'dan l-artikolu, tista 'tuża databases multipli f'Laravel b'mod effettiv.

Qari Relatati

Ercole Palmeri

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.

Artikoli riċenti

Veeam għandu l-aktar appoġġ komprensiv għar-ransomware, mill-protezzjoni għar-rispons u l-irkupru

Coveware minn Veeam se jkompli jipprovdi servizzi ta' rispons għal inċidenti ta' estorsjoni ċibernetika. Coveware se joffri forensiċi u kapaċitajiet ta' rimedju...

April 23 2024

Rivoluzzjoni Ekoloġika u Diġitali: Kif il-Manutenzjoni Predittiva qed tittrasforma l-Industrija taż-Żejt u l-Gass

Il-manutenzjoni ta’ tbassir qed tirrivoluzzjona s-settur taż-żejt u l-gass, b’approċċ innovattiv u proattiv għall-ġestjoni tal-impjant...

April 22 2024

Ir-regolatur tal-antitrust tar-Renju Unit iqajjem allarm ta’ BigTech fuq GenAI

Is-CMA tar-Renju Unit ħarġet twissija dwar l-imġieba ta 'Big Tech fis-suq tal-intelliġenza artifiċjali. Hemm…

April 18 2024

Casa Green: rivoluzzjoni tal-enerġija għal futur sostenibbli fl-Italja

Id-Digriet "Case Green", ifformulat mill-Unjoni Ewropea biex itejjeb l-effiċjenza enerġetika tal-bini, ikkonkluda l-proċess leġiżlattiv tiegħu bi...

April 18 2024