REMS Environment Variables Reference
This file contains all required environment variables for REMS functionality across different environments.
Required Variables
Database Connection Variables
# REMS Database Configuration
REMS_DB_DRIVER=mysql # Database driver (mysql for testing, sqlsrv for production)
REMS_DB_HOST=127.0.0.1 # Database host
REMS_DB_PORT=3306 # Database port (3306 for MySQL, 1433 for SQL Server)
REMS_DB_DATABASE=rems_testing # Database name
REMS_DB_USERNAME=root # Database username
REMS_DB_PASSWORD= # Database password
Environment-Specific Configurations
Development Environment (.env)
# REMS Database Configuration
REMS_DB_DRIVER=mysql
REMS_DB_HOST=127.0.0.1
REMS_DB_PORT=3306
REMS_DB_DATABASE=rems
REMS_DB_USERNAME=root
REMS_DB_PASSWORD=
# Environment indicator (determines service binding)
APP_ENV=local
Testing Environment (.env.testing)
# REMS Database Configuration for Test Suite
REMS_DB_DRIVER=mysql
REMS_DB_HOST=127.0.0.1
REMS_DB_PORT=3306
REMS_DB_DATABASE=rems_test
REMS_DB_USERNAME=root
REMS_DB_PASSWORD=
# Environment indicator
APP_ENV=testing
Production Environment (.env.production)
# REMS Production Configuration
REMS_DB_DRIVER=sqlsrv
REMS_DB_HOST=your-sql-server-host
REMS_DB_PORT=1433
REMS_DB_DATABASE=rems
REMS_DB_USERNAME=your-production-username
REMS_DB_PASSWORD=your-production-password
# Environment indicator
APP_ENV=production
Quick Setup Checklist
For Development/Testing
- [ ] Set
REMS_DB_DRIVER=mysql - [ ] Configure MySQL database connection
- [ ] Set
APP_ENV=localorAPP_ENV=testing - [ ] Run migrations:
php artisan migrate --database=rems - [ ] Seed test data:
php artisan db:seed --class=RemsTestDataSeeder
For Production
- [ ] Set
REMS_DB_DRIVER=sqlsrv - [ ] Configure SQL Server connection details
- [ ] Set
APP_ENV=production - [ ] Verify connection:
php artisan tinker→DB::connection('rems')->getPdo()
Variable Descriptions
| Variable | Description | Example Values |
|---|---|---|
REMS_DB_DRIVER |
Database driver type | mysql (testing), sqlsrv (production) |
REMS_DB_HOST |
Database server hostname | 127.0.0.1, your-server.com |
REMS_DB_PORT |
Database server port | 3306 (MySQL), 1433 (SQL Server) |
REMS_DB_DATABASE |
Database name | rems (dev), rems_test (testing), rems (prod) |
REMS_DB_USERNAME |
Database username | root, your-username |
REMS_DB_PASSWORD |
Database password | your-password |
APP_ENV |
Application environment | local, testing, production |
Service Binding
The APP_ENV variable determines which REMS service implementation is used:
production,prod,staging: UsesRemsProgrammeService(live REMS database)All other environments (e.g. local, testing, etc.): UsesRemsProgrammeServiceMock(test database)
Troubleshooting
Connection Test
php artisan tinker
DB::connection('rems')->getDatabaseName();
Verify Configuration
php artisan tinker
config('database.connections.rems');
Test Service Binding
php artisan tinker
app(\App\Services\Contracts\RemsProgrammeServiceInterface::class)->getRemsProgrammes();
Notes
- Parallel Testing: Database names automatically get
_test_Nsuffix during parallel test execution - Security: Never commit production credentials to version control
- Validation: All variables are required for REMS functionality to work properly