Switching from MySQL to Postgres
I have just recently switched my backend database from MySQL to Postgres. I switched for political and technical reason.
Oracle now owns MySQL. They acquired it as part of their purchase of Sun Microsystems. Which bought it outright when it acquired MySQL AB. Oracle owning MySQL is a bad thing.
It is in Oracle's best interest of it keeps MySQL from growing and progressing. Oracle's money makers is the Oracle Database. They make a ton of money selling it and they make a ton of money supporting it. During the Internet boom MySQL was an alternative to Oracle's database on the low end. Small projects and poor web developers could install it and have access to a database that, while nowhere near as powerful as Oracle, was powerful enough.
MySQL AB made money by supporting and developing MySQL. Now that Oracle owns it they don't need the money that MySQL would bring in. In fact they would be better off financially if they upsold existing MySQL users into Oracle database contracts.
Under Oracle's stewardship MySQL has stagnated. Fewer features and fewer bug fixes. Many of the original MySQL developers have left since Oracle has taken ownership, and formed their own companies pushing their own version of MySQL.
I don't trust Oracle to nurture MySQL. I don't trust them to fix bugs, add features or move MySQL forward. To me MySQL is now a dead end.
The migration process
Migrating to Postgres was more troublesome than I would have liked. There is no one-to-one export/import process. MySQL uses a few non-standard data types and syntax. This makes it impossible to import data directly from a data dump. Even if you are using “–compatible=postgresql”.
Instead I narrowed down the old CMS’s tables that I specifically needed. Then I dumped them and hand edited them, making them compatible for Postgress.
Then the import was easy. It just took longer than I would have liked.
Overall I’m happy with the change. Getting familiar with Postgres has been easy if not without a couple of moments where I had to dig into the documentation. I feel more secure with Postgres over MySQL because of it’s independent nature. As well as comfortable with it’s technological underpinnings.