You can use it, but I would not recommend it especially if you are not familiar with Joomla's codebase and specific PostgreSQL particularities.
In the last couple of months I looked into a couple of PostgreSQL issues, as part of my time dedicated to the Joomla Bug Squad.
I never used it in production, but here are some issues / what to expect:
Supporting multiple database engines isn't just about writing a new driver
PostgreSQL is NOT like MySQL - MySQL is rather permissive when it comes to handling queries. PostgreSQL is not. What perfectly works on MySQL, does not necessarily work on PostgreSQL. Most typical issues:
- sequences that are not updated, so new inserts fail because of the PK
- NOT NULL constraints do not allow inserting data
- when using aggregate functions, PostgreSQL requires all other columns to be in the GROUP BY clause, MySQL does not.
3rd party support
I don't want to say all, but most of the extension developers work exclusively with MySQL. You should ask in advance if a certain extension is compatible with PostgreSQL.
Community support is rather low
The reality is that there are not so many users using PostgreSQL at this point. So all the development and testing is mostly done on MySQL. Each bug fix requires two testers. If none of them is using PostgreSQL, than it's likely that a change in the code will cause an issue in PostgreSQL.
There are some bugs reported, but from the report coming in, till somebody volunteers to fix it and two people can test it it may pass a long long time.
Status in Joomla 3.3.0
(as of 08.04.2014)
- you cannot insert new tags (SQL errors)
- you cannot install components that have an update server. (SQL errors)
- possible warning the the logs
Things can get better for PostgreSQL in Joomla
Even though some things are broken with PostgreSQL right now, you can make a contribution to Joomla by helping fixing things out.
The issues are not that bad, but without community support, they can't be fixed.
Here is what you can do:
- Check if there are any issues already submitted regarding your issue.
- Report any issues you have, making the replication steps as clear as possible.
- You can help confirming new issues (issues marked as "Open")
- You can propose a fix (via a Pull Request (PR) on github) for issues marked as "Confirmed".
- You can test proposed fixes (issues marked as "Pending")
- Test before each new release is made public