Database Configuration
On Zenifra, the main database settings are related to version, instances, password, failover, and storage.
PostgreSQL vs MariaDB
| Characteristic | PostgreSQL | MariaDB |
|---|---|---|
| Available versions | 15, 16, 17, 18 | 11, 12 |
| Instances | 1 to 3 total instances | 3 fixed instances |
| Instance changes later | Yes, in hourly billing | No |
| Automatic failover | Yes | Yes |
Database version
At creation time, the user can choose any version available in the console.
During edit:
- only forward upgrades are supported
- downgrades are not supported
Warning: version upgrades can cause a few minutes of downtime.
Instances and replicas
PostgreSQL
- minimum of 1 total instance
- maximum of 3 total instances
- the
masterhandles writes and reads - extra instances act as read replicas
In hourly billing, the total instance count can be increased or decreased later. In monthly and yearly billing, the configuration is fixed in the contract.
MariaDB
MariaDB always runs with 3 fixed instances. That quantity cannot be changed.
Password
The database password can be changed after creation. When this happens, Zenifra generates a completely new password and updates the URI shown in the console.
Connection details
The console shows:
- host
- port
- username
app - password
- database name
app - a ready-to-copy full URI
When replicas exist, the console can also show master details, replica details, and a ready URI for each one.
Failover
Automatic failover is supported for PostgreSQL and MariaDB.
In case of primary instance failure, the platform can promote a replica automatically.
Storage
- every database uses persistent storage
- storage can increase
- storage can never shrink
- on monthly and yearly contracts, changes should only happen after the contract ends
- increasing storage may cause temporary downtime
Good practices
- Plan version upgrades during low-traffic windows.
- Plan storage increases and instance adjustments considering possible temporary downtime.
- Manually configure
DATABASE_URLin the HTTP application; Zenifra does not inject this ENV automatically.