макалалар

Долбооруңузда бир нече маалымат базасын колдонуу үчүн Laravelди кантип конфигурациялоо керек

Адатта, программалык камсыздоону иштеп чыгуу долбоору структураланган түрдө маалыматтарды сактоо үчүн маалымат базасын колдонууну камтыйт.

Конкреттүү долбоорлор үчүн бир нече маалымат базасын колдонуу зарыл болушу мүмкүн.

Laravel менен, бир нече маалымат базаларын колдонуу үчүн, биз алкакты конфигурациялашыбыз керек, атап айтканда, байланыштар конфигурация файлын.

Келгиле, Laravelди бир нече маалымат базасын колдонуу үчүн кантип конфигурациялоону карап көрөлү.

Болжолдуу окуу убактысы: 4 мүнөт

File database.php in config справочник

Бул файл каталогдо жайгашкан config Laravel тиркемеңизден.

Файлда database.php мүмкүн defiбир нече маалымат базасын туташтыруу. Ар бир байланыш болушу керек defiмассив катары бириктирилген. Массив төмөнкү маалыматтарды камтышы керек:

  • driver: колдонуу үчүн маалымат базасынын драйвери;
  • host: аты host же дареги IP маалымат базасынын серверинен;
  • port: маалымат базасы серверинин порт номери;
  • database: маалымат базасынын аты;
  • username: маалымат базасына кошулуу үчүн колдонуучу аты;
  • password: маалымат базасына кошулуу үчүн сырсөз;

Мисалы, төмөнкү код defiЭки маалымат базасы байланышы бар, бири MySQL үчүн жана бири 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',
        ],

МБга кантип туташуу керек

Кийин defiМаалыматтар базасынын байланыштары болгондон кийин, аларды кодуңузда колдоно аласыз Laravel. Бул үчүн, сиз колдоно аласыз facade маалымат базасынын. Ал жерде facade маалымат базасы маалымат базалары менен өз ара аракеттенүү үчүн бирдиктүү интерфейсти камсыз кылат.

Берилиштер базасынын байланыштары ортосунда которулуу үчүн, сиз ыкманы колдоно аласыз Connection() делла facade Маалымат базалары. Ыкма Connection() аргумент катары маалымат базасы байланышынын атын алат.

Мисалы, төмөнкү код MySQL МБдан pgsql ДБга өтөт:

Инновациялык бюллетень
Инновация боюнча эң маанилүү жаңылыктарды өткөрүп жибербеңиз. Аларды электрондук почта аркылуу алуу үчүн катталыңыз.
use Illuminate\Support\Facades\DB;

DB::connection('pgsql');

Маалыматтар базасына туташууга өткөндөн кийин, аны сурамжылоо жана маалымат базасы менен иштешүү үчүн колдоно аласыз.

Laravelде бир нече маалымат базасын колдонуунун артыкчылыктары

Ларавелде бир нече маалымат базасын колдонуунун көптөгөн артыкчылыктары бар, анын ичинде:

  • Жакшыраак аткаруу: Бир нече маалымат базаларын колдонуу ар кандай типтеги маалыматтарды бөлүп, колдонмонун иштешин жакшыртат. Мисалы, сиз колдонуучунун маалыматтарын бир маалымат базасында жана продукт маалыматтарын башка маалымат базасында сактасаңыз болот.
  • Кошумча коопсуздук: Бир нече маалымат базаларын колдонуу ар кандай типтеги маалыматтарды бөлүп, колдонмонун коопсуздугун жакшыртат. Мисалы, сиз купуя маалыматтарды бир маалымат базасында жана азыраак сезгич маалыматтарды башка маалымат базасында сактасаңыз болот.
  • Кеңири масштабдалуу: Бир нече маалымат базаларын колдонуу, берилиштериңизди бир нече серверге жайылтууга мүмкүндүк берип, колдонмоңузду масштабдуураак кыла алат.

Ларавелде бир нече маалымат базаларын колдонуу боюнча мыкты тажрыйбалар

Бул жерде Laravelде бир нече маалымат базаларын колдонуу үчүн эң мыкты тажрыйбалар:

  • Берилиштер базасынын туташуусу үчүн ыңгайлуу аталыштарды колдонуңуз: Бул маалымат базасынын байланыштарын аныктоону жана башкарууну жеңилдетет.
  • Методду колдонуңуз Connection() биринен кетүү DB башкага - бул кокусунан качууга жардам берет суроо сул маалыматтар базасы туура эмес.
  • Берилиштер базаңыздын схемаларын башкаруу үчүн маалымат базасын көчүрүү системасын колдонуңуз – бул сиздин маалымат базаңыздын схемаларын бардык маалыматтарыңызда синхрондоштурууга жардам берет. маалыматтар базасы.

жыйынтыктоо

Laravelде бир нече маалымат базаларын колдонуу колдонмоңуздун иштешин, коопсуздугун жана масштабдуулугун жакшыртуунун эң сонун жолу болушу мүмкүн. Бул макалада сүрөттөлгөн мыкты тажрыйбаларды колдонуу менен, сиз Laravelде бир нече маалымат базасын эффективдүү колдоно аласыз.

Байланыштуу окуулар

Ercole Palmeri

Инновациялык бюллетень
Инновация боюнча эң маанилүү жаңылыктарды өткөрүп жибербеңиз. Аларды электрондук почта аркылуу алуу үчүн катталыңыз.

акыркы макалалар

Veeam ransomware үчүн коргоодон баштап жооп кайтарууга жана калыбына келтирүүгө чейин эң комплекстүү колдоону камтыйт

Veeam тарабынан Coveware кибер опузалап инциденттерге жооп берүү кызматтарын көрсөтүүнү улантат. Coveware криминалистика жана ремедиация мүмкүнчүлүктөрүн сунуштайт ...

April 23 2024

Жашыл жана санариптик революция: алдын ала тейлөө мунай жана газ өнөр жайын кантип өзгөртөт

Болжолдуу тейлөө заводду башкарууга инновациялык жана жигердүү мамиле кылуу менен мунай жана газ секторун революция кылып жатат.…

April 22 2024

Улуу Британиянын монополияга каршы жөнгө салуучу органы GenAI боюнча BigTech коңгуроосун көтөрөт

Улуу Британиянын CMA жасалма интеллект рыногунда Big Tech жүрүм-туруму жөнүндө эскертүү берди. Ал жерде…

April 18 2024

Casa Green: Италияда туруктуу келечек үчүн энергетикалык революция

Имараттардын энергетикалык натыйжалуулугун жогорулатуу үчүн Европа Биримдиги тарабынан иштелип чыккан "Case Green" Декрети өзүнүн мыйзам чыгаруу процессин аяктады ...

April 18 2024

Инновацияны өз тилиңизде окуңуз

Инновациялык бюллетень
Инновация боюнча эң маанилүү жаңылыктарды өткөрүп жибербеңиз. Аларды электрондук почта аркылуу алуу үчүн катталыңыз.

бизди ээрчи