From 3ecaa54d547dafc9a68465fa231368d6f2967d85 Mon Sep 17 00:00:00 2001 From: "railway-app[bot]" <68434857+railway-app[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:03:04 +0000 Subject: [PATCH] feat: add PostgreSQL support via DATABASE_URL with SQLite fallback --- Dockerfile | 1 + config.php | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 577b3cd..6bdc04a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM php:8.2-cli RUN apt-get update && apt-get install -y sqlite3 libsqlite3-dev && rm -rf /var/lib/apt/lists/* RUN docker-php-ext-install pdo_sqlite +RUN docker-php-ext-install pdo_pgsql WORKDIR /var/www/html COPY . /var/www/html/ diff --git a/config.php b/config.php index e0ecfbe..613def7 100644 --- a/config.php +++ b/config.php @@ -19,7 +19,14 @@ function getDB() { static $db = null; if ($db === null) { - $db = new PDO('sqlite:' . ROOT_PATH . '/database/school.db'); + // Check for PostgreSQL via DATABASE_URL (Railway Postgres provides this) + if (!empty($_ENV['DATABASE_URL']) || !empty(getenv('DATABASE_URL'))) { + $dbUrl = $_ENV['DATABASE_URL'] ?? getenv('DATABASE_URL'); + $db = new PDO($dbUrl); + } else { + // Fall back to SQLite for local development + $db = new PDO('sqlite:' . ROOT_PATH . '/database/school.db'); + } $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return $db;