Hi, Otto,
Automatically performing the upgrade in the server would pretty much mean that downgrade is officially impossible.
Historically the server mostly worked fine without mysql_upgrade, with few exceptions (like, when a bug in collations required indexes to be rebuilt).
Nowadays it seems we don't have an official position. The server kinda sorta is supposed to work, at least here and there I see the code in the server that is written to support old tables. But it's done inconsistently, there're more and more cases when the server won't work without mysql_upgrade, and documentation now says that mysql_upgrade must be run. This was not the case earlier, mysql_upgrade was optional.
Disallowing downgrades would, of course, simplify the server quite a bit, for example, privilege system has a lot of code for handling old privilege tables.
But considering that people sometimes do need to downgrade, would it be a welcome change if we'll totally prohibit it?
What I mean is - we need to take a position and either admit that we no longer allow downgrades *at all* or that downgrades *should work*.
In the first case, the server can auto-upgrade the datadir, this would be a user friendly thing to do.
In the second case, every time when mysql_upgrade is required it should be considered a bug. This is a more complex approach.
Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org
On Jul 25, Otto Kekäläinen via developers wrote:
I frequently see users running into various problems after upgrading MariaDB and starting the upgraded mariadbd server:
...
All of the above could be permanently solved if mariadbd simply did the upgrade by itself automatically. Can we please have this?