Every Skyline web hosting plan now includes PostgreSQL 16 next to MySQL. Open S Panel, choose PostgreSQL, give the database a name, and it is created with its own user and a strong password in one step. Your PHP, Laravel or Node.js app connects to it on the same server in Riyadh — no database server to build, patch or babysit.
Start your free 14-day trial — no credit card
Included in every plan from 49 SAR a month. Data stays in Saudi Arabia.
For years the rule on Saudi hosting was simple: if your project needed PostgreSQL, you could not use hosting. You rented a virtual server, installed the database yourself, worked out its authentication file, opened and then hurriedly closed its port, and became the person who gets the call when the disk fills up. For a software house in Riyadh shipping a Laravel booking system, or a freelance developer in Jeddah building an inventory tool for a trading company in Dammam, that was a lot of server administration attached to what should have been a small hosting bill.
The applications themselves had already moved on. Laravel, Symfony, Django and most Node.js frameworks treat PostgreSQL as a first-class choice, and many teams prefer it for strict data types, proper transactions and JSON columns that can be indexed. The gap was on the hosting side. It is now closed: PostgreSQL is part of Skyline web hosting, managed from the same panel as your files, domains and SSL.
That is the whole procedure. There is no configuration file to edit and nothing to restart.
The examples below use a database called acme_shop. Yours will start with your panel username; the user name is the same as the database name.
The pgsql and pdo_pgsql drivers are installed on PHP 8.0, 8.1, 8.2 and 8.3, so set your website to one of those versions.
<?php
$pdo = new PDO(
'pgsql:host=127.0.0.1;port=5432;dbname=acme_shop',
'acme_shop',
'the-password-shown-once'
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('SELECT id, name_ar, name_en FROM products WHERE city = ?');
$stmt->execute(['Riyadh']);
Laravel ships with a PostgreSQL driver. Change four lines in .env, then run your migrations as usual.
DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=acme_shop DB_USERNAME=acme_shop DB_PASSWORD=the-password-shown-once
If the app runs as a Node.js app on your hosting, put the connection string in the app's .env file and read it from the environment.
# .env in the app folder
DATABASE_URL=postgres://acme_shop:the-password-shown-once@127.0.0.1:5432/acme_shop
// app.js (npm install pg)
const { Pool } = require('pg');
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
pool.query('SELECT now()').then(r => console.log(r.rows[0]));
Keep the password out of your Git repository: .env files belong in .gitignore.
| Question | Answer |
|---|---|
| PostgreSQL version | PostgreSQL 16 |
| Databases per hosting account | Up to 5 PostgreSQL databases, in addition to your plan's MySQL/MariaDB 10.11 databases |
| Who can open a database | Only its own user. Each database gets one, created with it |
| Where connections come from | Websites and apps on the same server only — host 127.0.0.1, port 5432. No access from the internet |
| Managing data | Adminer in the browser, opened from S Panel; or your application's own migrations |
| PHP drivers | pgsql and pdo_pgsql on PHP 8.0–8.3 |
| Deleting a database | Through support, on request |
| Where the data lives | On the hosting server in Riyadh, Saudi Arabia |
Closing the database to the internet is a choice, not an omission. One of the commonest ways a small database is breached is a port left open to the internet with a weak password. Here there is no port to find: the only way in is through code running on your own hosting account, or through the panel you sign in to.
If your architecture needs a database that several servers reach over the network, or one you tune yourself, choose a cloud server in Riyadh and install PostgreSQL on it. You get root access and full control — and the administration that comes with it.
You do not have to pick one for the whole account: both are available on every plan, and a single website can use either.
A logistics company in Jeddah runs its marketing site on WordPress and wants a shipment-tracking page for customers. Its developer builds the tracker in Laravel on PostgreSQL, deploys it to a second website on the same Dedicated plan, and the WordPress site links to it. Both sites are in Riyadh, both get free SSL, and the tracker's database is never reachable from outside the server. The monthly bill is still 119 SAR plus VAT.
| Shared | Dedicated | Cloud | Cloud Pro | |
|---|---|---|---|---|
| Monthly price (SAR, excl. VAT) | 49 | 119 | 199 (149 for the first 3 months) | 249 (199 for the first 3 months) |
| Websites | 1 | 5 | 25 | 50 |
| PostgreSQL 16 databases | Up to 5 | Up to 5 | Up to 5 | Up to 5 |
| Node.js 22 apps | Up to 3 | Up to 3 | Up to 3 | Up to 3 |
| Memory | 512 MB | 1 GB | 4 GB | 8 GB |
Full plan details are on the web hosting plans page, and every Skyline price is on the price list. Billing is in riyals from a prepaid wallet, with a ZATCA e-invoice for every charge, and support answers in Arabic or English.
Related reading: Node.js hosting in Saudi Arabia, business web hosting, and what data residency means in practice.
All of them. Shared (49 SAR a month), Dedicated (119), Cloud (199) and Cloud Pro (249) each include PostgreSQL 16 alongside MySQL/MariaDB. Prices exclude 15% VAT; the Cloud plans are 149 and 199 SAR for the first three months.
Up to five PostgreSQL databases per hosting account. They sit alongside the MySQL databases your plan already includes, so a site can keep WordPress on MySQL and run a separate application on PostgreSQL.
PostgreSQL 16. Every hosting account on the platform uses the same version, so what you test on is what you run in production.
No. The databases accept connections only from websites and apps on the same hosting server, at host 127.0.0.1 and port 5432. For day-to-day work you use the browser-based database tool included in S Panel. If you need a database reachable from outside, a self-managed cloud server in Riyadh is the right product.
Yes. Each database has an "Open in browser" button in S Panel that opens Adminer, a web-based database manager, already pointed at your database. You can browse tables, run SQL, import and export.
No. Each database is created with its own user, and only that user can open it. Another account on the same server cannot connect to it, and your database user cannot open theirs.
The password is generated for you and shown once when the database is created, so copy it into your application settings straight away. If it is lost, contact support and we will help you set a new one.
Ask support. Deletion is deliberately not a button in the panel, so a database cannot disappear because of a stray click.
WordPress is built for MySQL and MariaDB, so keep it there — every plan includes them. PostgreSQL is for the applications that ask for it: Laravel or Symfony projects, Node.js services, and software whose installer lists PostgreSQL as its database.
Open an account, pick a plan, and create a PostgreSQL database before your coffee cools. Fourteen days free, no card, hosted in Riyadh.
SAR 50 free credit — code SKY30 at signup
No card to start. Enter code SKY30 when you sign up and your wallet opens with SAR 50 of credit.