Overview
GB App supports multiple database connections:- MySQL - Primary database for application data
- SQL Server - Optional secondary databases for external data sources
Database Configuration File
Database connections are defined inconfig/database.php:
config/database.php
MySQL Configuration
Docker Setup (Default)
The docker-compose.yml includes a MySQL 5.7 container:docker-compose.yml
Environment Configuration
.env
DB_HOST=db references the database service name in docker-compose.yml. For external MySQL servers, use the actual hostname or IP address.External MySQL Server
To connect to an external MySQL server:.env
MySQL SSL Connection
For SSL-encrypted connections:.env
SQL Server Configuration
GB App includes SQL Server support via the Microsoft ODBC Driver.PHP Extensions
The Dockerfile includes SQL Server drivers:Environment Configuration
For a SQL Server primary database:.env
Additional SQL Server Connections
GB App supports multiple named SQL Server connections:.env
SQL Server Encryption
- SQLSRV_ENCRYPT: Enable/disable encryption (
true/false) - SQLSRV_TRUST_SERVER_CERTIFICATE: Trust self-signed certificates (
true/false)
Using Multiple Connections
In Models
Specify the connection in your model:In Queries
In Authentication
The hybrid authentication system explicitly uses MySQL:app/Actions/Fortify/AuthenticateUserHybrid.php
Database Migrations
GB App includes comprehensive migrations for all tables.Running Migrations
Migration Files
Key migrations included:Users Table Structure
database/migrations/2014_10_12_000000_create_users_table.php
database/migrations/2026_01_14_095321_add_ldap_fields_to_users_table.php
Reports Table Structure
database/migrations/2023_06_30_143012_create_reports_table.php
Database Maintenance
Backup MySQL Database
Restore MySQL Database
Access MySQL CLI
Check Database Connection
Troubleshooting
Connection refused to database
Connection refused to database
Check that:
- Database container is running:
docker compose ps - Credentials in
.envmatch container environment - Database host is correct (
dbfor Docker container) - Port is correct (3306 for MySQL, 1433 for SQL Server)
SQL Server connection fails
SQL Server connection fails
- Verify SQL Server drivers are installed:
php -m | grep sqlsrv - Check encryption settings (try
SQLSRV_TRUST_SERVER_CERTIFICATE=true) - Ensure SQL Server allows remote connections
- Verify firewall allows port 1433
Migration fails
Migration fails
- Check database exists:
docker compose exec db mysql -u root -ppasswordr -e "SHOW DATABASES;" - Verify user has proper permissions
- Clear config cache:
php artisan optimize - Check migration status:
php artisan migrate:status
Character encoding issues
Character encoding issues
Ensure MySQL uses utf8mb4: