PDO::ERRMODE_EXCEPTION]); } catch (PDOException $e) { fwrite(STDERR, "DB not available: {$e->getMessage()}\n"); exit(0); } $tables = $pdo->query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'")->fetchAll(PDO::FETCH_COLUMN); if (!in_array('sessions', $tables)) { $pdo->exec("CREATE TABLE sessions ( id VARCHAR(255) PRIMARY KEY, user_id BIGINT NULL, ip_address VARCHAR(45) NULL, user_agent TEXT NULL, payload TEXT NOT NULL, last_activity INTEGER NOT NULL )"); $pdo->exec("CREATE INDEX sessions_user_id_index ON sessions (user_id)"); $pdo->exec("CREATE INDEX sessions_last_activity_index ON sessions (last_activity)"); echo "Created sessions table\n"; } if (!in_array('cache', $tables)) { $pdo->exec("CREATE TABLE cache ( key VARCHAR(255) PRIMARY KEY, value TEXT NOT NULL, expiration INTEGER NOT NULL )"); echo "Created cache table\n"; } if (!in_array('cache_locks', $tables)) { $pdo->exec("CREATE TABLE cache_locks ( key VARCHAR(255) PRIMARY KEY, owner VARCHAR(255) NOT NULL, expiration INTEGER NOT NULL )"); echo "Created cache_locks table\n"; } echo "Tables check complete\n";