Skip to content

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=local or APP_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 tinkerDB::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: Uses RemsProgrammeService (live REMS database)
  • All other environments (e.g. local, testing, etc.): Uses RemsProgrammeServiceMock (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_N suffix during parallel test execution
  • Security: Never commit production credentials to version control
  • Validation: All variables are required for REMS functionality to work properly