Yesterday we migrated many #postgresql databases to 16.2. It went smoothly for all of them except one.
The database is used by Sidekiq for 90% of the traffic. We choose a time window outside of working hours, but still we had some traffic, and we didn't turn off pods. The database was inaccessible for 10min. Jobs rescheduled, and quickly auto-scaling was triggered. I was not able to perform ANALYZE. So requests retrying at the same time + huge disk read. 💥
Don't get me wrong, my experience told me is usually not a good idea to rely on managed databases that much, if I had full control of the servers then it may be fine, we can do dry-runs multiple times and monitor before proceeding.
When I do not have control of the #postgresql server I prefer to follow what Heroku have documented:
MySQL folks take a lot of things for granted that are not present in this form in Postgres, and that may be a bad surprise when you try out "the other system".
MySQL for example has a stable and upwards- and slightly-downwards-compatible on-disk format, mostly. Oracle sometimes forgets how important that is and makes changes, or unannounced changes, and then needs to be corrected, hard, by their development partners and testers.
@isotopp I definitely prefer PostgreSQL to #MySQL, but #PostgreSQL deciding that collation derives from your system's locale settings when PostgreSQL installed means identical setups on different boxes can behave differently. This is NOT FUN to debug.
I've heard that there was discussion to change this, but I don't know if it happened.
#Neon is GA now. This is a serverless #PostgreSQL database which allows you to do branching, scale down the database to zero, and quickly restore a point in time - among other features.