0

I'm developing a project where I need to use multiple databases in Laravel. The first database works like a charm (MySQL) but I can't get the framework to recognize the SQLite DB. The error that shows up is this:

Illuminate \ Database \ QueryException Database (sqlite) does not exist. (SQL: PRAGMA foreign_keys = ON;)

Here is my .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sitio1
DB_USERNAME=root
DB_PASSWORD=

DB_CONNECTION_SECOND=sqlite
DB_DATABASE_SECOND=/Users/imac/CleverOctopusBDD/database/Sitio2.sqlite
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=

and here is my database.php

'default' => env('DB_CONNECTION', 'mysql'),

'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'url' => env('DATABASE_URL'),
        'database' => env('DB_CONNECTION_SECOND', database_path('Sitio2.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', 'sitiocentral'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', ''),
        ]) : [],
    ],

And the location of my .sqlite file is this -> database -> Sitio2.sqlite

I've doing some research and I don't really know what am I doing wrong. If you are wondering, this is how one of my sqlite db model looks...

class Client2 extends Model
{
    protected $connection = 'sqlite';

    protected $fillable = [
        'name', 'email', 'phone', 'address'
    ];

    protected $table = 'Client2';
    protected $primaryKey = 'idClient';
    public $timestamps = false;
}

I hope you can help me out here because I have found information about multiple MySQL connections but not with SQLite, I appreciate any tips given.

EDIT: I just needed to pass the full path to 'database' => env('DB_DATABASE_SECOND', database_path('Sitio2.sqlite')),

1 Answers1

1

does it work if you put the full path to your sqlite file in the database config like this?

'sqlite' => [
        'driver' => 'sqlite',
        'url' => env('DATABASE_URL'),
        'database' => '/Users/imac/CleverOctopusBDD/database/Sitio2.sqlite',
        'prefix' => '',
        'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
    ],
mhdyuzi
  • 11
  • 1