Atik

Ki jan yo konfigirasyon Laravel pou itilize plizyè baz done nan Pwojè ou a

Nòmalman yon pwojè devlopman lojisyèl enplike itilizasyon yon baz done pou estoke done nan yon fason estriktire.

Pou pwojè espesifik li ka nesesè pou itilize plizyè baz done.

Avèk Laravel, pou itilize baz done miltip, nou bezwen konfigirasyon kad la ak an patikilye fichye konfigirasyon koneksyon an.

Ann wè ki jan yo konfigirasyon Laravel pou itilize plizyè baz done.

Estimasyon tan lekti: 4 minit

File database.php in config anyè

Fichye sa a sitiye nan anyè a config nan aplikasyon Laravel ou a.

Nan dosye a database.php se posib defifini plizyè koneksyon baz done. Chak koneksyon dwe definited kòm yon etalaj. Etalaj la ta dwe genyen enfòmasyon sa yo:

  • driver: chofè baz done pou itilize;
  • host: non an host oswa adrès la IP nan sèvè baz done a;
  • port: nimewo pò a sèvè baz done;
  • database: non baz done a;
  • username: non itilizatè a pou konekte ak baz done a;
  • password: modpas la pou konekte ak baz done a;

Pou egzanp, kòd sa a defiGen de koneksyon baz done, youn pou MySQL ak youn pou 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',
        ],

Ki jan yo konekte ak DB a

Apre defiYon fwa ou gen koneksyon baz done, ou ka itilize yo nan kòd ou a Laravel. Pou fè sa, ou ka itilize facade nan baz done a. La facade baz done bay yon koòdone inifye pou kominike avèk baz done.

Pou chanje ant koneksyon baz done, ou ka itilize metòd la Connection() nan facade Baz done. Metòd la Connection() pran non koneksyon baz done a kòm yon agiman.

Pou egzanp, kòd sa a ale soti nan DB mysql nan DB pgsql la:

Bilten inovasyon
Pa rate nouvèl ki pi enpòtan sou inovasyon. Enskri pou resevwa yo pa imel.
use Illuminate\Support\Facades\DB;

DB::connection('pgsql');

Yon fwa ou chanje nan yon koneksyon baz done, ou ka itilize li pou rechèch ak kominike avèk baz done a.

Benefis lè w itilize plizyè baz done nan Laravel

Gen anpil avantaj pou itilize plizyè baz done nan Laravel, tankou:

  • Pi bon pèfòmans: Sèvi ak plizyè baz done ka amelyore pèfòmans aplikasyon lè yo separe done diferan kalite. Pou egzanp, ou ta ka estoke done itilizatè yo nan yon baz done ak done pwodwi nan yon lòt baz done.
  • Sekirite amelyore: Sèvi ak plizyè baz done ka amelyore sekirite aplikasyon lè yo separe done diferan kalite. Pou egzanp, ou ta ka estoke done sansib nan yon baz done ak done mwens sansib nan yon lòt baz done.
  • Pi gwo évolutivité: Sèvi ak baz done miltip ka fè aplikasyon w lan pi évolutive lè w pèmèt ou distribye done ou sou plizyè sèvè.

Pi bon pratik pou itilize plizyè baz done nan Laravel

Men kèk pi bon pratik pou itilize plizyè baz done nan Laravel:

  • Sèvi ak non zanmitay pou koneksyon baz done: Sa ap fè li pi fasil pou idantifye ak jere koneksyon baz done.
  • Sèvi ak metòd la Connection() ale nan yon sèl DB nan yon lòt - sa ap ede ou evite aksidantèlman kouri query sid baz done mal.
  • Sèvi ak yon sistèm migrasyon baz done pou jere chema baz done ou yo - sa ap ede ou kenbe chema baz done ou an senkronize atravè tout ou. baz done.

konklizyon

Sèvi ak plizyè baz done nan Laravel kapab yon bon fason pou amelyore pèfòmans, sekirite, ak évolutivité aplikasyon w lan. Lè w swiv pi bon pratik ki dekri nan atik sa a, ou ka itilize plizyè baz done nan Laravel efektivman.

Lekti ki gen rapò

Ercole Palmeri

Bilten inovasyon
Pa rate nouvèl ki pi enpòtan sou inovasyon. Enskri pou resevwa yo pa imel.

Recent Articles

Veeam prezante sipò ki pi konplè pou ransomware, soti nan pwoteksyon jiska repons ak rekiperasyon

Coveware by Veeam ap kontinye bay sèvis repons pou ensidan ekstòsyon sou cyber. Coveware pral ofri medsen legal ak kapasite ratrapaj ...

23 Avril 2024

Revolisyon vèt ak dijital: Ki jan antretyen prediksyon ap transfòme endistri lwil oliv ak gaz

Antretyen prediksyon ap revolisyone sektè lwil oliv ak gaz la, ak yon apwòch inovatè ak aktif nan jesyon plant yo.…

22 Avril 2024

Regilatè antitrust UK ogmante alam BigTech sou GenAI

UK CMA te bay yon avètisman sou konpòtman Big Tech nan mache entèlijans atifisyèl la. La…

18 Avril 2024

Casa Green: revolisyon enèji pou yon avni dirab nan peyi Itali

Dekrè "Case Green", ki te fòme pa Inyon Ewopeyen an pou amelyore efikasite enèji nan bilding yo, te konkli pwosesis lejislatif li yo ak...

18 Avril 2024