mysqlとSQLite3の同時使用例
php.iniの場所
$ php -r "echo phpinfo();" | grep "php.ini"
php.ini
//使用するDBをコメントアウト
extension=pdo_mysql
extension=sqlite3
httpdの再起動
データベースの作成
設定
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE_1={データベース名}
DB_USERNAME=root
DB_PASSWORD=null
DB_CONNECTION=sqlite
DB_DATABASE_2={パス/データベースファイル名}
config/database.php
'default' => env('DB_CONNECTION_1', 'mysql'),
//略
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE_2', database_path({フォルダパス})),
'prefix' => '',
],
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE_1', 'forge'),
'username' => env('DB_USERNAME_1', 'forge'),
'password' => env('DB_PASSWORD_1', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
migration
//デフォルトDBにはconnectonメソッドは必要なし
Schema::connection('sqlite')->create({テーブル名}, function (Blueprint $table) {
}
データベースを指定してマイグレーション
$ php artisan migration --database=sqlite
Modelでの接続設定
Model
class Datas extends Model
{
protected $connection = 'sqlite';
}