Summary
Allow a second database engine to be installed on an existing server, next to the one the server was provisioned with. If only one engine is installed, nothing changes. If both are installed, the Databases page and the Database Configuration editor get a tab per engine.
Why
- More and more newer applications require PostgreSQL, while many existing servers already host MySQL apps that work fine and don't need to move.
- This is about coexistence, not migrations. Migrations are a nice side benefit, not the main use case.
- Cloning or spinning up a new server isn't always realistic. A server's IP is often whitelisted with third parties (APIs, payment providers, firewalls, mail relays), so changing IP means a round of external changes for one new app.
- The current workaround is running the second engine in Docker or Manuall install on the server. That puts it outside Ploi entirely: no database/user management, no Ploi backups, no config editor, no API. We have to build our own workarounds for backups.
Proposed behaviour
- Install second engine: an "Install PostgreSQL" / "Install MySQL" action on the server, the same pattern as existing optional services (Docker, Node.js manager, etc.).
- Databases page: when both engines are present, show tabs
MySQL | PostgreSQL. Create database, users, synchronize and backups work per tab, exactly as they do today. - Manage → Database configuration: tabbed editor, one tab per engine's config file (
my.cnf/postgresql.conf, optionallypg_hba.conf). - Services: both engines listed with restart/reload as usual.
- Uninstall: option to remove one engine once it's no longer needed, guarded by a check that no databases remain on it.
- API: an
engine(ortype) parameter on the database, database-user and backup endpoints. It defaults to the server's primary engine, so existing integrations don't break.
Scope / compatibility
- Default ports don't conflict (
3306/5432). - Servers with a single engine see no UI or API change.
- Purely opt-in; no impact on provisioning of new servers.
Minimal first version
Installing a second engine, plus tabs on the Databases page with backups, would already solve most of it. The config editor tabs and uninstall can follow later.
Support MySQL/MariaDB and PostgreSQL side by side on one server (opt-in, tabbed UI + API)
-
Kay van Aarssen moved item to project Panel
4 hours ago -
Kay van Aarssen created the item
4 hours ago