{"id":548,"date":"2022-02-11T22:05:00","date_gmt":"2022-02-11T22:05:00","guid":{"rendered":"https:\/\/rishikantsri.in\/blog\/?p=548"},"modified":"2023-10-27T07:03:59","modified_gmt":"2023-10-27T07:03:59","slug":"548-2","status":"publish","type":"post","link":"https:\/\/rishikantsri.in\/blog\/548-2\/","title":{"rendered":"Config: database.php"},"content":{"rendered":"\n<p>The code, provided here, is from the Laravel 8 configuration file for database connections (<code>config\/database.php<\/code>). This file is a crucial part of any Laravel application as it defines how the application interacts with different databases. Let&#8217;s break down this code step by step:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.80000114440918px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"use Illuminate\\Support\\Str;\n\nreturn [\n    'default' =&gt; env('DB_CONNECTION', 'mysql'),\n\n    'connections' =&gt; [\n        'sqlite' =&gt; [\n            'driver' =&gt; 'sqlite',\n            'url' =&gt; env('DATABASE_URL'),\n            'database' =&gt; env('DB_DATABASE', database_path('database.sqlite')),\n            'prefix' =&gt; '',\n            'foreign_key_constraints' =&gt; env('DB_FOREIGN_KEYS', true),\n        ],\n        'mysql' =&gt; [\n            \/\/ Configuration for the MySQL database connection\n        ],\n        'pgsql' =&gt; [\n            \/\/ Configuration for the PostgreSQL database connection\n        ],\n        'sqlsrv' =&gt; [\n            \/\/ Configuration for the SQL Server database connection\n        ],\n    ],\n\n    'migrations' =&gt; 'migrations',\n\n    'redis' =&gt; [\n        \/\/ Configuration for Redis\n    ],\n];\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">use<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">Illuminate<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Support<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Str<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">return<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;default&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_CONNECTION&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;connections&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;sqlite&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;driver&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;sqlite&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;url&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DATABASE_URL&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;database&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_DATABASE&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> database_path<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;database.sqlite&#39;<\/span><span style=\"color: #BBBBBB\">)),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;prefix&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;foreign_key_constraints&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_FOREIGN_KEYS&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #6B737C\">\/\/ Configuration for the MySQL database connection<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;pgsql&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #6B737C\">\/\/ Configuration for the PostgreSQL database connection<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;sqlsrv&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #6B737C\">\/\/ Configuration for the SQL Server database connection<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;migrations&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;migrations&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;redis&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #6B737C\">\/\/ Configuration for Redis<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">];<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Now, let&#8217;s go through the code and understand it in more detail:<\/p>\n\n\n\n<ol>\n<li><strong>Namespace Import<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul>\n<li><code>use Illuminate\\Support\\Str;<\/code> imports the <code>Str<\/code> class from Laravel&#8217;s support package. This class provides utility functions for string manipulation.<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>Configuration Array<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>The code is enclosed in a PHP array returned at the end. It defines the configuration for various database connections, including the default database, as well as Redis and migration settings.<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>Default Database Connection<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul>\n<li><code>'default' =&gt; env('DB_CONNECTION', 'mysql')<\/code>: This line sets the default database connection to &#8216;mysql&#8217; if no other connection is specified. It uses the value of the <code>DB_CONNECTION<\/code> environment variable and defaults to &#8216;mysql&#8217; if not defined.<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>Database Connections<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>The <code>'connections'<\/code> array contains configurations for various types of databases supported by Laravel, including SQLite, MySQL, PostgreSQL, and SQL Server.<\/li>\n\n\n\n<li>For each database type, you have an array that specifies the connection settings. For example, the &#8216;mysql&#8217; connection is configured under the <code>'mysql'<\/code> key, the &#8216;sqlite&#8217; connection is configured under the <code>'sqlite'<\/code> key, and so on.<\/li>\n\n\n\n<li>Each database connection array typically includes settings like database host, port, database name, username, password, character set, and other database-specific options.<\/li>\n\n\n\n<li>Here&#8217;s an example of the &#8216;mysql&#8217; configuration: <\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.80000114440918px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"'mysql' =&gt; [\n    'driver' =&gt; 'mysql',\n    'url' =&gt; env('DATABASE_URL'),\n    'host' =&gt; env('DB_HOST', '127.0.0.1'),\n    'port' =&gt; env('DB_PORT', '3306'),\n    'database' =&gt; env('DB_DATABASE', 'forge'),\n    'username' =&gt; env('DB_USERNAME', 'forge'),\n    'password' =&gt; env('DB_PASSWORD', ''),\n    'unix_socket' =&gt; env('DB_SOCKET', ''),\n    'charset' =&gt; 'utf8mb4',\n    'collation' =&gt; 'utf8mb4_unicode_ci',\n    'prefix' =&gt; '',\n    'prefix_indexes' =&gt; true,\n    'strict' =&gt; true,\n    'engine' =&gt; null,\n    'options' =&gt; extension_loaded('pdo_mysql') ? array_filter([\n        PDO::MYSQL_ATTR_SSL_CA =&gt; env('MYSQL_ATTR_SSL_CA'),\n    ]) : [],\n],\n\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;driver&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;url&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DATABASE_URL&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;host&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_HOST&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;127.0.0.1&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;port&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_PORT&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;3306&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;database&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_DATABASE&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;forge&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;username&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_USERNAME&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;forge&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_PASSWORD&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;unix_socket&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_SOCKET&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;charset&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;utf8mb4&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;collation&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;utf8mb4_unicode_ci&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;prefix&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;prefix_indexes&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;strict&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;engine&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">null<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;options&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> extension_loaded<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;pdo_mysql&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">?<\/span><span style=\"color: #B392F0\"> array_filter<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #79B8FF\">PDO<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">MYSQL_ATTR_SSL_CA <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;MYSQL_ATTR_SSL_CA&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #B392F0\"> []<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<ul>\n<li>This configuration sets up a MySQL connection with various parameters, including host, port, database name, username, and password. It also defines the character set, collation, and other database-specific options.<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>Migration Repository Table<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul>\n<li><code>'migrations' =&gt; 'migrations'<\/code> specifies the name of the table where Laravel stores migration information. Migrations are used to version control the database schema.<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>Redis Databases Configuration<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>The <code>'redis'<\/code> section is responsible for configuring Redis, a popular in-memory data store.<\/li>\n\n\n\n<li>It defines the default Redis connection, as well as settings for the cache store.<\/li>\n\n\n\n<li>Here&#8217;s an example of the default Redis configuration: <merlin-component id=\"merlin-code-summarizer\" class=\"merlin-code-summarizer\"><\/merlin-component><code>'default' =&gt; [ 'url' =&gt; env('REDIS_URL'), 'host' =&gt; env('REDIS_HOST', '127.0.0.1'), 'password' =&gt; env('REDIS_PASSWORD', null), 'port' =&gt; env('REDIS_PORT', '6379'), 'database' =&gt; env('REDIS_DB', '0'), ],<\/code> This configuration includes settings for Redis server host, port, password, and database.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Multiple Databases: Scenario 1<\/h2>\n\n\n\n<p>a scenario where you want to separate read and write databases or use different database systems for different needs.<\/p>\n\n\n\n<p>In this example, we will configure two database connections: one for the main application data (MySQL) and another for logging purposes (SQLite). <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites:<\/h3>\n\n\n\n<p>Before you start, make sure you have a Laravel project set up and the necessary database systems (MySQL and SQLite) are installed and running.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Configure Laravel&#8217;s <code>.env<\/code> File:<\/h3>\n\n\n\n<p>First, configure your Laravel application&#8217;s <code>.env<\/code> file to provide the necessary environment variables for the database connections. Open the <code>.env<\/code> file and set the following variables:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:9.899993896484375px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=myapp\nDB_USERNAME=myapp_user\nDB_PASSWORD=myapp_password\n\nDB_LOG_CONNECTION=sqlite\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">DB_CONNECTION<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">mysql<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_HOST<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #F8F8F8\">127<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">0<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">0<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_PORT<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #F8F8F8\">3306<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_DATABASE<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">myapp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_USERNAME<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">myapp_user<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_PASSWORD<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">myapp_password<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_LOG_CONNECTION<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">sqlite<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this example, we set up two database connections:<\/p>\n\n\n\n<ul>\n<li><code>DB_CONNECTION=mysql<\/code>: This is the main MySQL database used for application data.<\/li>\n\n\n\n<li><code>DB_LOG_CONNECTION=sqlite<\/code>: This is an SQLite database used for logging purposes.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Configure <code>config\/database.php<\/code>:<\/h3>\n\n\n\n<p>Now, let&#8217;s configure Laravel&#8217;s <code>config\/database.php<\/code> file to handle these two database connections. Open the <code>config\/database.php<\/code> file and make the following changes:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.80000114440918px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"'connections' =&gt; [\n    'mysql' =&gt; [\n        'driver' =&gt; 'mysql',\n        'host' =&gt; env('DB_HOST', '127.0.0.1'),\n        'port' =&gt; env('DB_PORT', '3306'),\n        'database' =&gt; env('DB_DATABASE', 'myapp'),\n        'username' =&gt; env('DB_USERNAME', 'myapp_user'),\n        'password' =&gt; env('DB_PASSWORD', 'myapp_password'),\n        \/\/ Additional MySQL configurations...\n    ],\n\n    'sqlite' =&gt; [\n        'driver' =&gt; 'sqlite',\n        'database' =&gt; database_path('logs.sqlite'), \/\/ SQLite database for logging\n        'prefix' =&gt; '',\n    ],\n],\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFAB70\">&#39;connections&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;driver&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;host&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_HOST&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;127.0.0.1&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;port&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_PORT&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;3306&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;database&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_DATABASE&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;myapp&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;username&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_USERNAME&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;myapp_user&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_PASSWORD&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;myapp_password&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #6B737C\">\/\/ Additional MySQL configurations...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;sqlite&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;driver&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;sqlite&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;database&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> database_path<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;logs.sqlite&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #6B737C\">\/\/ SQLite database for logging<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;prefix&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this code:<\/p>\n\n\n\n<ul>\n<li>We have configured the <code>'mysql'<\/code> connection using the MySQL database parameters from the <code>.env<\/code> file.<\/li>\n\n\n\n<li>We have also configured the <code>'sqlite'<\/code> connection for logging using SQLite. The <code>database_path<\/code> function is used to set the SQLite database file path to <code>storage\/database\/logs.sqlite<\/code>.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>In Laravel 8, SQLite is supported out of the box, so you don&#8217;t need to install it separately. However, you may need to make sure your Laravel project is configured to use SQLite as the database system. Here&#8217;s how to do it:<\/p>\n\n\n\n<p>By default, the <code>.env<\/code> file is already set up to use SQLite for local development. Open the <code>.env<\/code> file and make sure the following lines are configured as shown:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:9.900009155273438px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"   DB_CONNECTION=sqlite\n   # DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, and DB_PASSWORD should be empty or not specified for SQLite.\n   # Example:\n   # DB_HOST=\n   # DB_PORT=\n   # DB_DATABASE=\n   # DB_USERNAME=\n   # DB_PASSWORD=\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">   DB_CONNECTION<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">sqlite<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   <\/span><span style=\"color: #6B737C\"># DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, and DB_PASSWORD should be empty or not specified for SQLite.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   <\/span><span style=\"color: #6B737C\"># Example:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   <\/span><span style=\"color: #6B737C\"># DB_HOST=<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   <\/span><span style=\"color: #6B737C\"># DB_PORT=<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   <\/span><span style=\"color: #6B737C\"># DB_DATABASE=<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   <\/span><span style=\"color: #6B737C\"># DB_USERNAME=<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   <\/span><span style=\"color: #6B737C\"># DB_PASSWORD=<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In the SQLite configuration, you don&#8217;t need to specify a host, port, username, or password.<\/p>\n\n\n\n<p><strong>Create the SQLite Database<\/strong>: Laravel uses a SQLite database file. By default, this file is stored in the <code>database<\/code> directory with the name <code>database.sqlite<\/code>. If it doesn&#8217;t exist, you can create it by running the following command in your project&#8217;s root directory:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:9.88751220703125px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"   touch database\/database.sqlite\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">   touch database<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #B392F0\">database<\/span><span style=\"color: #F97583\">.<\/span><span style=\"color: #B392F0\">sqlite<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This command will create an empty SQLite database file.<\/p>\n\n\n\n<p><strong>Migrate the Database<\/strong>: Laravel uses migrations to create the database schema. Run the following command to run the migrations and create the necessary tables:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:9.88751220703125px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"   php artisan migrate\n   php artisan db:seed\n   php artisan serve\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">   php artisan migrate<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   php artisan db:seed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   php artisan serve<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>   <\/code><\/pre>\n\n\n\n<p>Step 3: Using Multiple Database Connections in Your Code:<\/p>\n\n\n\n<p>Now that you have set up multiple database connections, you can use them in your code. Here&#8217;s an example of how to use both database connections:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.799999237060547px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"use Illuminate\\Support\\Facades\\DB;\n\n\/\/ Using the 'mysql' connection for application data\n$users = DB::connection('mysql')-&gt;table('users')-&gt;get();\n\n\/\/ Using the 'sqlite' connection for logging\nDB::connection('sqlite')-&gt;table('logs')-&gt;insert([\n    'log_message' =&gt; 'A log entry',\n    'created_at' =&gt; now(),\n]);\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">use<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">Illuminate<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Support<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Facades<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6B737C\">\/\/ Using the &#39;mysql&#39; connection for application data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">$users <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">connection<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">table<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;users&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6B737C\">\/\/ Using the &#39;sqlite&#39; connection for logging<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">connection<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;sqlite&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">table<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;logs&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">insert<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;log_message&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;A log entry&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;created_at&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> now<\/span><span style=\"color: #BBBBBB\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In the above code:<\/p>\n\n\n\n<ul>\n<li>We use the <code>DB::connection()<\/code> method to specify which database connection to use.<\/li>\n\n\n\n<li>The first query retrieves data from the MySQL database using the <code>'mysql'<\/code> connection.<\/li>\n\n\n\n<li>The second query inserts data into the SQLite database for logging purposes using the <code>'sqlite'<\/code> connection.<\/li>\n<\/ul>\n\n\n\n<p>ms or separate your data, Laravel&#8217;s database configurati<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Multiple Databases: Scenario 2<\/h2>\n\n\n\n<p>Imagine you are building an e-commerce platform where you need to separate read and write operations for the product catalog and manage order data in a different database system. Here&#8217;s how you can set this up using Laravel:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario: E-commerce Platform with Separate Databases<\/h3>\n\n\n\n<p>In an e-commerce platform, there are typically two primary aspects: managing product data and handling customer orders. You may want to optimize the application&#8217;s performance and scalability by separating these concerns into different database systems.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1: Configure <code>.env<\/code> File<\/h4>\n\n\n\n<p>In your Laravel application&#8217;s <code>.env<\/code> file, set up the environment variables for both databases:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.800018310546875px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Database connection for product catalog\nDB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=product_catalog\nDB_USERNAME=product_user\nDB_PASSWORD=product_password\n\n# Database connection for order management\nDB_ORDER_CONNECTION=pgsql\nDB_ORDER_HOST=127.0.0.1\nDB_ORDER_PORT=5432\nDB_ORDER_DATABASE=order_management\nDB_ORDER_USERNAME=order_user\nDB_ORDER_PASSWORD=order_password\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\"># Database connection for product catalog<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_CONNECTION<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">mysql<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_HOST<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #F8F8F8\">127<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">0<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">0<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_PORT<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #F8F8F8\">3306<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_DATABASE<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">product_catalog<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_USERNAME<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">product_user<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_PASSWORD<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">product_password<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6B737C\"># Database connection for order management<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_ORDER_CONNECTION<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">pgsql<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_ORDER_HOST<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #F8F8F8\">127<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">0<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">0<\/span><span style=\"color: #BBBBBB\">.<\/span><span style=\"color: #F8F8F8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_ORDER_PORT<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #F8F8F8\">5432<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_ORDER_DATABASE<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">order_management<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_ORDER_USERNAME<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">order_user<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">DB_ORDER_PASSWORD<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">order_password<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this configuration, you have two different sets of environment variables for two distinct databases: one for product catalog and one for order management.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2: Configure <code>config\/database.php<\/code><\/h4>\n\n\n\n<p>Next, configure your <code>config\/database.php<\/code> file to handle these two separate database connections:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.80000114440918px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"'connections' =&gt; [\n    'mysql' =&gt; [\n        'driver' =&gt; 'mysql',\n        'host' =&gt; env('DB_HOST', '127.0.0.1'),\n        'port' =&gt; env('DB_PORT', '3306'),\n        'database' =&gt; env('DB_DATABASE', 'product_catalog'),\n        'username' =&gt; env('DB_USERNAME', 'product_user'),\n        'password' =&gt; env('DB_PASSWORD', 'product_password'),\n        \/\/ Additional MySQL configurations...\n    ],\n\n    'pgsql' =&gt; [\n        'driver' =&gt; 'pgsql',\n        'host' =&gt; env('DB_ORDER_HOST', '127.0.0.1'),\n        'port' =&gt; env('DB_ORDER_PORT', '5432'),\n        'database' =&gt; env('DB_ORDER_DATABASE', 'order_management'),\n        'username' =&gt; env('DB_ORDER_USERNAME', 'order_user'),\n        'password' =&gt; env('DB_ORDER_PASSWORD', 'order_password'),\n        \/\/ Additional PostgreSQL configurations...\n    ],\n],\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFAB70\">&#39;connections&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;driver&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;host&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_HOST&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;127.0.0.1&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;port&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_PORT&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;3306&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;database&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_DATABASE&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;product_catalog&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;username&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_USERNAME&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;product_user&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_PASSWORD&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;product_password&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #6B737C\">\/\/ Additional MySQL configurations...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #FFAB70\">&#39;pgsql&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;driver&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;pgsql&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;host&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_ORDER_HOST&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;127.0.0.1&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;port&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_ORDER_PORT&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;5432&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;database&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_ORDER_DATABASE&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;order_management&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;username&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_ORDER_USERNAME&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;order_user&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> env<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;DB_ORDER_PASSWORD&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;order_password&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #6B737C\">\/\/ Additional PostgreSQL configurations...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this code, you&#8217;ve set up two separate connections for the MySQL and PostgreSQL databases. The <code>mysql<\/code> connection is used for product catalog data, while the <code>pgsql<\/code> connection is used for order management.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 3: Using Multiple Database Connections<\/h4>\n\n\n\n<p>Now, you can use these multiple database connections in your code. For example:<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Product Catalog:<\/h5>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:9.9000244140625px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"use Illuminate\\Support\\Facades\\DB;\n\n\/\/ Using the 'mysql' connection for product catalog\n$products = DB::connection('mysql')-&gt;table('products')-&gt;get();\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">use<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">Illuminate<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Support<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Facades<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6B737C\">\/\/ Using the &#39;mysql&#39; connection for product catalog<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">$products <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">connection<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;mysql&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">table<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;products&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">Order Management:<\/h5>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:9.89996337890625px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"use Illuminate\\Support\\Facades\\DB;\n\n\/\/ Using the 'pgsql' connection for order management\n$orders = DB::connection('pgsql')-&gt;table('orders')-&gt;get();\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">use<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">Illuminate<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Support<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">Facades<\/span><span style=\"color: #BBBBBB\">\\<\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6B737C\">\/\/ Using the &#39;pgsql&#39; connection for order management<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">$orders <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">connection<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;pgsql&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">table<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;orders&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this scenario:<\/p>\n\n\n\n<ul>\n<li>The <code>mysql<\/code> connection retrieves product catalog data, such as product listings, descriptions, and prices.<\/li>\n\n\n\n<li>The <code>pgsql<\/code> connection manages order data, including customer orders, shipping information, and order status.<\/li>\n<\/ul>\n\n\n\n<p>Separating read and write operations into different databases can improve application performance, especially in high-traffic e-commerce platforms, as read-heavy and write-heavy operations can be managed independently.Using Laravel&#8217;s database configuration, you can easily switch between different databases, making it seamless to handle product data and order management.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Multiple Databases: other scenarios<\/h2>\n\n\n\n<p>The following scenarios illustrate how multiple databases can provide benefits in terms of data isolation, performance optimization, migration strategies, and separation of concerns in various web applications. The choice to use multiple databases depends on the specific requirements and challenges of each project.<\/p>\n\n\n\n<ol>\n<li><strong>Multitenancy Applications<\/strong>: Multitenancy applications serve multiple clients (tenants) with their own isolated data. Each tenant&#8217;s data is stored in a separate database, allowing for better data separation and security. For example, a Software as a Service (SaaS) platform that provides a CRM system to multiple companies may use a separate database for each company&#8217;s data.<\/li>\n\n\n\n<li><strong>Read-Heavy and Write-Heavy Workloads<\/strong>: In some applications, read and write operations have significantly different workloads. For instance, a news website might experience a high volume of read requests for articles but fewer write requests for publishing new content. Using separate databases for reads and writes can help optimize performance. This is known as the CQRS (Command Query Responsibility Segregation) pattern.<\/li>\n\n\n\n<li><strong>Legacy and Modern Systems Integration<\/strong>: When transitioning from a legacy system to a modern one, you may need to keep the old system operational while gradually migrating data. Using two databases, one for the legacy system and another for the modern one, allows a phased migration strategy. Data can be replicated between them during the transition period.<\/li>\n\n\n\n<li><strong>User and Session Management<\/strong>: Some applications may use a database for user authentication and authorization and a separate one for managing user sessions. This separation can help improve security and allow for more efficient handling of session data. For instance, a content management system (CMS) may store user profiles in one database and session data in another.<\/li>\n\n\n\n<li><strong>Logging and Analytics<\/strong>: Applications often generate a significant amount of log and analytics data. This data can be stored in separate databases optimized for analytics and reporting. A company&#8217;s e-commerce platform may store transaction data in the primary database and copy it to a dedicated analytics database for generating reports and insights.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Pros and Cons<\/strong>:<\/p>\n\n\n\n<p>Pros of this configuration setup in Laravel:<\/p>\n\n\n\n<ol>\n<li><strong>Flexibility<\/strong>: Laravel&#8217;s database configuration is highly flexible. It allows you to configure multiple database connections, which is useful for scenarios like separating read and write databases or working with different database systems.<\/li>\n\n\n\n<li><strong>Environment Variables<\/strong>: The use of environment variables (via the <code>env<\/code> function) makes it easy to configure and switch between different environments (e.g., development, production) without modifying code.<\/li>\n\n\n\n<li><strong>Driver Support<\/strong>: Laravel supports various database systems like MySQL, PostgreSQL, SQLite, and SQL Server out of the box, making it versatile for different project requirements.<\/li>\n\n\n\n<li><strong>Redis Integration<\/strong>: Laravel&#8217;s Redis configuration simplifies setting up and using Redis for caching and other data storage needs.<\/li>\n<\/ol>\n\n\n\n<p>Cons:<\/p>\n\n\n\n<ol>\n<li><strong>Complexity<\/strong>: The database configuration file can become complex when working with multiple connections or when additional configurations are required, potentially leading to errors if not properly managed.<\/li>\n\n\n\n<li><strong>Learning Curve<\/strong>: Understanding how to set up and configure various database connections and related settings can be a bit challenging for beginners.<\/li>\n<\/ol>\n\n\n\n<p>In conclusion, this Laravel 8 database configuration code is a fundamental part of Laravel applications. It provides a flexible way to set up different database connections, manage migrations, and configure Redis. While it offers great flexibility and environment-based configuration, it can become complex for complex projects and might require a bit of a learning curve for newcomers to Laravel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The code, provided here, is from the Laravel 8 configuration file for database connections (config\/database.php). This file is a crucial part of any Laravel application as it defines how the application interacts with different databases. Let&#8217;s break down this code step by step: Now, let&#8217;s go through the code and understand it in more detail: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63,11],"tags":[64,3,4],"_links":{"self":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts\/548"}],"collection":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/comments?post=548"}],"version-history":[{"count":6,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts\/548\/revisions"}],"predecessor-version":[{"id":559,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts\/548\/revisions\/559"}],"wp:attachment":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/media?parent=548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/categories?post=548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/tags?post=548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}