We haven't used the MySQL forks but for our case (a Bioinformatics databases) switching to PostgeSQL worked really well. The web-application (Cellwall Navigator, 10k lines of Perl code and 10 db tables) was running on MySQL for 5 years. It took us 2 days to adjust the SQL to migrate to Postgres.
No application coded needed adjustments except for connection to the database.
The adjustment were:
Replaced MySQL password() with Postgres md5() like this
SELECT id FROM users WHERE email = ? AND password = password(?)
becomes SELECT id FROM users WHERE email = ? AND password = md5(?)
Easy conversion for a MySQL STRAIGHT_JOIN to a regular JOIN
- And one JOIN case like this
Original SQL, which was permitted by MySQL (worked fine for the app before migration):
SELECT sequence.id, ... FROM sequence JOIN xlink ON xlink.sequence = sequence.id WHERE xlink.accession = ? GROUP BY sequence.id
We adjusted it to be the proper SQL that works in PostgeSQL and correct for the application:
SELECT DISTINCT sequence.id, ... FROM sequence JOIN xlink ON xlink.sequence = sequence.id WHERE xlink.accession = ?