Files
termanager2/config/database.php
2026-07-30 17:05:39 +02:00

85 lines
3.0 KiB
PHP

<?php
return [
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql' => [
'driver' => 'mysql',
'url' => env('DB_URL'),
'host' => env('DB_HOST', 'mariadb'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'termanager2'),
'username' => env('DB_USERNAME', 'termanager2'),
'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'),
]) : [],
],
/*
* Esiste per la suite di test, che gira su ':memory:' (impostato in
* phpunit.xml): ogni classe ricostruisce lo schema da zero senza
* bisogno di un MariaDB in piedi ne' di toccare il volume db_data.
*
* L'applicazione NON gira mai su questo driver: DB_CONNECTION resta
* 'mysql' ovunque. Il divario fra i due motori e' quindi da tenere
* presente quando un test riguarda SQL grezzo — in particolare
* l'ordinamento del Registro usa CAST(... AS UNSIGNED), che SQLite non
* conosce: quel percorso va verificato su MariaDB, non qui.
*
* foreign_key_constraints e' acceso di proposito: senza, SQLite
* ignorerebbe le FK e i test passerebbero anche con dati che MariaDB
* rifiuterebbe.
*/
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DB_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
'busy_timeout' => null,
'journal_mode' => null,
'synchronous' => null,
],
],
'migrations' => [
'table' => 'migrations',
'update_date_on_publish' => true,
],
'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'prefix' => env('REDIS_PREFIX', 'termanager2_'),
],
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', 'redis'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
'cache' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', 'redis'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '1'),
],
],
];