feat(database): update database configuration for Oracle and MySQL

- Changed DB_CONNECTION to MySQL and updated related settings.
- Added Oracle database configuration with necessary parameters.
- Introduced docker-compose for MySQL and Oracle services.
This commit is contained in:
Jérémy Munsch 2026-08-28 17:31:18 +02:00
parent 46ab5e4325
commit d2c9e0807a
Signed by: forge-joniko
GPG key ID: D7EFE2F5CB6CC0E4
5 changed files with 389 additions and 194 deletions

View file

@ -20,29 +20,32 @@ LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=sqlite
DB_CONNECTION=mysql
# DB_URL=
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
DB_HOST=127.0.0.1
DB_PORT=3308
DB_DATABASE=arcadia_api
DB_USERNAME=root
DB_PASSWORD=:Mysql.Docker2026
# DB_SOCKET=
# DB_CHARSET=utf8mb4
# DB_COLLATION=utf8mb4_unicode_ci
# MYSQL_ATTR_SSL_CA=
ARCADIA_DB_CONNECTION=mysql
# ARCADIA_DB_URL=
# Arcadia Database (Oracle Database 19c)
ARCADIA_DB_CONNECTION=arcadia
ARCADIA_DB_DRIVER=oracle
# ARCADIA_DB_TNS=
ARCADIA_DB_HOST=127.0.0.1
ARCADIA_DB_PORT=3306
ARCADIA_DB=arcadia
ARCADIA_DB_USERNAME=root
ARCADIA_DB_PASSWORD=
# ARCADIA_DB_SOCKET=
# ARCADIA_DB_CHARSET=utf8mb4
# ARCADIA_DB_COLLATION=utf8mb4_unicode_ci
# ARCADIA_DB_SSL_CA=
ARCADIA_DB_PORT=1521
ARCADIA_DB=XEPDB1
ARCADIA_DB_SERVICE_NAME=XEPDB1
ARCADIA_DB_USERNAME=ORACLE
ARCADIA_DB_PASSWORD=:Oracle.Docker2026
ARCADIA_DB_SCHEMA=arcadia
# ARCADIA_DB_CHARSET=AL32UTF8
# ARCADIA_DB_EDITION=ora$base
# ARCADIA_DB_SERVER_VERSION=19c
SESSION_DRIVER=database
SESSION_LIFETIME=120
@ -65,10 +68,10 @@ REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=log
MAIL_MAILER=smtp
MAIL_SCHEME=null
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_FROM_ADDRESS="hello@example.com"

View file

@ -13,7 +13,8 @@
"laravel/sanctum": "^4.0",
"psr/clock": "^1.0",
"sentry/sentry-laravel": "^4.27",
"webmozart/assert": "^2.4"
"webmozart/assert": "^2.4",
"yajra/laravel-oci8": "^13.11"
},
"require-dev": {
"ace-of-aces/intellipest": "^1.0",

473
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "d2a8a323834211fd1ab115cc3e0d2367",
"content-hash": "f4587f38615f44811e032521737f785a",
"packages": [
{
"name": "brick/math",
@ -440,42 +440,6 @@
],
"time": "2025-10-31T18:51:33+00:00"
},
{
"name": "driftingly/rector-laravel",
"version": "2.5.0",
"source": {
"type": "git",
"url": "https://github.com/driftingly/rector-laravel.git",
"reference": "0dbdd842dfdbc821cfe5f47ca7326e2502b2a107"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/driftingly/rector-laravel/zipball/0dbdd842dfdbc821cfe5f47ca7326e2502b2a107",
"reference": "0dbdd842dfdbc821cfe5f47ca7326e2502b2a107",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"rector/rector": "^2.2.7",
"webmozart/assert": "^1.11 || ^2.0"
},
"type": "rector-extension",
"autoload": {
"psr-4": {
"RectorLaravel\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Rector upgrades rules for Laravel Framework",
"support": {
"issues": "https://github.com/driftingly/rector-laravel/issues",
"source": "https://github.com/driftingly/rector-laravel/tree/2.5.0"
},
"time": "2026-06-02T16:22:14+00:00"
},
{
"name": "egulias/email-validator",
"version": "4.0.4",
@ -2725,70 +2689,6 @@
],
"time": "2025-12-27T19:41:33+00:00"
},
{
"name": "phpstan/phpstan",
"version": "2.2.8",
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e285254e60f33c21902efef4a926ca0987c06804",
"reference": "e285254e60f33c21902efef4a926ca0987c06804",
"shasum": ""
},
"require": {
"php": "^7.4|^8.0"
},
"conflict": {
"phpstan/phpstan-shim": "*"
},
"bin": [
"phpstan",
"phpstan.phar"
],
"type": "library",
"autoload": {
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ondřej Mirtes"
},
{
"name": "Markus Staab"
},
{
"name": "Vincent Langlet"
}
],
"description": "PHPStan - PHP Static Analysis Tool",
"keywords": [
"dev",
"static analysis"
],
"support": {
"docs": "https://phpstan.org/user-guide/getting-started",
"forum": "https://github.com/phpstan/phpstan/discussions",
"issues": "https://github.com/phpstan/phpstan/issues",
"security": "https://github.com/phpstan/phpstan/security/policy",
"source": "https://github.com/phpstan/phpstan-src"
},
"funding": [
{
"url": "https://github.com/ondrejmirtes",
"type": "github"
},
{
"url": "https://github.com/phpstan",
"type": "github"
}
],
"time": "2026-08-04T22:21:45+00:00"
},
{
"name": "psr/clock",
"version": "1.0.0",
@ -3355,66 +3255,6 @@
},
"time": "2026-06-18T03:57:49+00:00"
},
{
"name": "rector/rector",
"version": "2.6.3",
"source": {
"type": "git",
"url": "https://github.com/rectorphp/rector.git",
"reference": "7e46709996a4b3dc59e1d6ecbb6a38ace335bd58"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/7e46709996a4b3dc59e1d6ecbb6a38ace335bd58",
"reference": "7e46709996a4b3dc59e1d6ecbb6a38ace335bd58",
"shasum": ""
},
"require": {
"php": "^7.4|^8.0",
"phpstan/phpstan": "^2.2.6"
},
"conflict": {
"rector/rector-doctrine": "*",
"rector/rector-downgrade-php": "*",
"rector/rector-phpunit": "*",
"rector/rector-symfony": "*"
},
"suggest": {
"ext-dom": "To manipulate phpunit.xml via the custom-rule command"
},
"bin": [
"bin/rector"
],
"type": "library",
"autoload": {
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Instant Upgrade and Automated Refactoring of any PHP code",
"homepage": "https://getrector.com/",
"keywords": [
"automation",
"dev",
"migration",
"refactoring"
],
"support": {
"issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.6.3"
},
"funding": [
{
"url": "https://github.com/tomasvotruba",
"type": "github"
}
],
"time": "2026-08-18T22:01:18+00:00"
},
{
"name": "sentry/sentry",
"version": "4.30.0",
@ -6599,6 +6439,157 @@
"source": "https://github.com/webmozarts/assert/tree/2.4.1"
},
"time": "2026-06-15T15:31:57+00:00"
},
{
"name": "yajra/laravel-oci8",
"version": "v13.11.1",
"source": {
"type": "git",
"url": "https://github.com/yajra/laravel-oci8.git",
"reference": "0ae81fae0da1cb6f8b146984d0f20e052d91fb45"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/yajra/laravel-oci8/zipball/0ae81fae0da1cb6f8b146984d0f20e052d91fb45",
"reference": "0ae81fae0da1cb6f8b146984d0f20e052d91fb45",
"shasum": ""
},
"require": {
"ext-oci8": ">=3.0.1",
"ext-pdo": "*",
"illuminate/database": "^13",
"illuminate/pagination": "^13",
"illuminate/support": "^13",
"illuminate/validation": "^13",
"php": "^8.3",
"yajra/laravel-pdo-via-oci8": "^3.7.1"
},
"require-dev": {
"larastan/larastan": "^3.1.0",
"laravel/pint": "^1.21",
"mockery/mockery": "^1.6.12",
"orchestra/testbench": "^11",
"phpunit/phpunit": "^12.0.1",
"rector/rector": "^2.0.9"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Yajra\\Oci8\\Oci8ServiceProvider",
"Yajra\\Oci8\\Oci8ValidationServiceProvider"
]
},
"branch-alias": {
"dev-master": "13.x-dev"
}
},
"autoload": {
"psr-4": {
"Yajra\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Arjay Angeles",
"email": "aqangeles@gmail.com"
}
],
"description": "Oracle DB driver for Laravel via OCI8",
"keywords": [
"laravel",
"oci8",
"oracle",
"pdo_oci",
"yajra"
],
"support": {
"issues": "https://github.com/yajra/laravel-oci8/issues",
"source": "https://github.com/yajra/laravel-oci8/tree/v13.11.1"
},
"funding": [
{
"url": "https://www.paypal.me/yajra",
"type": "custom"
},
{
"url": "https://github.com/yajra",
"type": "github"
},
{
"url": "https://www.patreon.com/yajra",
"type": "patreon"
}
],
"time": "2026-08-25T01:57:14+00:00"
},
{
"name": "yajra/laravel-pdo-via-oci8",
"version": "v3.7.3",
"source": {
"type": "git",
"url": "https://github.com/yajra/pdo-via-oci8.git",
"reference": "a18f7195fb7cbe5924d501b5a1837da6c05b52eb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/yajra/pdo-via-oci8/zipball/a18f7195fb7cbe5924d501b5a1837da6c05b52eb",
"reference": "a18f7195fb7cbe5924d501b5a1837da6c05b52eb",
"shasum": ""
},
"require": {
"ext-oci8": "*",
"ext-pdo": "*",
"php": "^8.0"
},
"require-dev": {
"phpunit/phpunit": "^8.4|^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Yajra\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Arjay Angeles",
"email": "aqangeles@gmail.com"
}
],
"description": "PDO userspace driver proxying calls to PHP OCI8 driver",
"support": {
"issues": "https://github.com/yajra/pdo-via-oci8/issues",
"source": "https://github.com/yajra/pdo-via-oci8/tree/v3.7.3"
},
"funding": [
{
"url": "https://www.paypal.me/yajra",
"type": "custom"
},
{
"url": "https://github.com/yajra",
"type": "github"
},
{
"url": "https://www.patreon.com/yajra",
"type": "patreon"
}
],
"time": "2025-12-17T07:09:38+00:00"
}
],
"packages-dev": [
@ -7371,6 +7362,42 @@
},
"time": "2026-02-07T07:09:04+00:00"
},
{
"name": "driftingly/rector-laravel",
"version": "2.5.0",
"source": {
"type": "git",
"url": "https://github.com/driftingly/rector-laravel.git",
"reference": "0dbdd842dfdbc821cfe5f47ca7326e2502b2a107"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/driftingly/rector-laravel/zipball/0dbdd842dfdbc821cfe5f47ca7326e2502b2a107",
"reference": "0dbdd842dfdbc821cfe5f47ca7326e2502b2a107",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"rector/rector": "^2.2.7",
"webmozart/assert": "^1.11 || ^2.0"
},
"type": "rector-extension",
"autoload": {
"psr-4": {
"RectorLaravel\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Rector upgrades rules for Laravel Framework",
"support": {
"issues": "https://github.com/driftingly/rector-laravel/issues",
"source": "https://github.com/driftingly/rector-laravel/tree/2.5.0"
},
"time": "2026-06-02T16:22:14+00:00"
},
{
"name": "fakerphp/faker",
"version": "v1.24.1",
@ -9758,6 +9785,70 @@
},
"time": "2026-07-08T07:01:06+00:00"
},
{
"name": "phpstan/phpstan",
"version": "2.2.8",
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e285254e60f33c21902efef4a926ca0987c06804",
"reference": "e285254e60f33c21902efef4a926ca0987c06804",
"shasum": ""
},
"require": {
"php": "^7.4|^8.0"
},
"conflict": {
"phpstan/phpstan-shim": "*"
},
"bin": [
"phpstan",
"phpstan.phar"
],
"type": "library",
"autoload": {
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ondřej Mirtes"
},
{
"name": "Markus Staab"
},
{
"name": "Vincent Langlet"
}
],
"description": "PHPStan - PHP Static Analysis Tool",
"keywords": [
"dev",
"static analysis"
],
"support": {
"docs": "https://phpstan.org/user-guide/getting-started",
"forum": "https://github.com/phpstan/phpstan/discussions",
"issues": "https://github.com/phpstan/phpstan/issues",
"security": "https://github.com/phpstan/phpstan/security/policy",
"source": "https://github.com/phpstan/phpstan-src"
},
"funding": [
{
"url": "https://github.com/ondrejmirtes",
"type": "github"
},
{
"url": "https://github.com/phpstan",
"type": "github"
}
],
"time": "2026-08-04T22:21:45+00:00"
},
{
"name": "phpstan/phpstan-webmozart-assert",
"version": "2.0.0",
@ -10316,6 +10407,66 @@
],
"time": "2025-11-17T20:46:25+00:00"
},
{
"name": "rector/rector",
"version": "2.6.3",
"source": {
"type": "git",
"url": "https://github.com/rectorphp/rector.git",
"reference": "7e46709996a4b3dc59e1d6ecbb6a38ace335bd58"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/7e46709996a4b3dc59e1d6ecbb6a38ace335bd58",
"reference": "7e46709996a4b3dc59e1d6ecbb6a38ace335bd58",
"shasum": ""
},
"require": {
"php": "^7.4|^8.0",
"phpstan/phpstan": "^2.2.6"
},
"conflict": {
"rector/rector-doctrine": "*",
"rector/rector-downgrade-php": "*",
"rector/rector-phpunit": "*",
"rector/rector-symfony": "*"
},
"suggest": {
"ext-dom": "To manipulate phpunit.xml via the custom-rule command"
},
"bin": [
"bin/rector"
],
"type": "library",
"autoload": {
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Instant Upgrade and Automated Refactoring of any PHP code",
"homepage": "https://getrector.com/",
"keywords": [
"automation",
"dev",
"migration",
"refactoring"
],
"support": {
"issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.6.3"
},
"funding": [
{
"url": "https://github.com/tomasvotruba",
"type": "github"
}
],
"time": "2026-08-18T22:01:18+00:00"
},
{
"name": "sebastian/cli-parser",
"version": "4.2.1",

View file

@ -37,23 +37,20 @@ return [
'connections' => [
'arcadia' => [
'driver' => 'mariadb',
'url' => env('ARCADIA_DB_URL'),
'driver' => env('ARCADIA_DB_DRIVER', 'oracle'),
'tns' => env('ARCADIA_DB_TNS', ''),
'host' => env('ARCADIA_DB_HOST', '127.0.0.1'),
'port' => env('ARCADIA_DB_PORT', '3306'),
'database' => env('ARCADIA_DB', 'arcadia'),
'username' => env('ARCADIA_DB_USERNAME', 'root'),
'port' => env('ARCADIA_DB_PORT', '1521'),
'database' => env('ARCADIA_DB', 'XEPDB1'),
'service_name' => env('ARCADIA_DB_SERVICE_NAME', 'XEPDB1'),
'username' => env('ARCADIA_DB_USERNAME', 'DIGITAL'),
'password' => env('ARCADIA_DB_PASSWORD', ''),
'unix_socket' => env('ARCADIA_DB_SOCKET', ''),
'charset' => env('ARCADIA_DB_CHARSET', 'utf8mb4'),
'collation' => env('ARCADIA_DB_COLLATION', 'utf8mb4_unicode_ci'),
'charset' => env('ARCADIA_DB_CHARSET', 'AL32UTF8'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
Mysql::ATTR_SSL_CA => env('ARCADIA_DB_SSL_CA'),
]) : [],
'prefix_schema' => env('ARCADIA_DB_SCHEMA', 'DIGITAL'),
'edition' => env('ARCADIA_DB_EDITION', 'ora$base'),
'server_version' => env('ARCADIA_DB_SERVER_VERSION', '19c'),
'max_name_len' => (int) env('ARCADIA_DB_MAX_NAME_LEN', 128),
],
'sqlite' => [

43
docker-compose.yml Normal file
View file

@ -0,0 +1,43 @@
x-name: arcadia-api
services:
mysql:
image: mysql:8.4
container_name: arcadia_mysql
restart: unless-stopped
ports:
- "3308:3306"
environment:
MYSQL_ROOT_PASSWORD: ":Mysql.Docker2026"
MYSQL_DATABASE: "arcadia_api"
volumes:
- mysql_data:/var/lib/mysql
mailpit:
image: axllent/mailpit:latest
container_name: arcadia_mailpit
restart: unless-stopped
ports:
- "1025:1025"
- "8025:8025"
volumes:
- mailpit_data:/data
oracle:
image: gvenzl/oracle-xe:21-slim
container_name: arcadia_oracle
restart: unless-stopped
ports:
- "1521:1521"
environment:
ORACLE_PASSWORD: ":Oracle.Docker2026"
ORACLE_DATABASE: "XEPDB1"
volumes:
- oracle_data:/opt/oracle/oradata
volumes:
mysql_data:
driver: local
mailpit_data:
driver: local
oracle_data:
driver: local