Un-deprecate ejabberd_config:set_option/2
This might be controversial, but it was necessary for the next item. Is there another way to change config settings at runtime?
New schema migration 'update_sql' improvements
Check that server_host column does not already exist before addding it and making other changes to table (update_sql becomes idempotent, yay!)
Check that indexes exist before dropping them (some are historical and are not created in more recent deployments), elminating spurious errors from logs
Update new_sql_schema config after migration, to allow minimizing downtime during migrations (and help with automated testing)
Add ability to run tests on upgraded DB
And enable them in github actions - only run if changes are detected in schema or update_sql code (it would be good to also run this at least once pre-release, but it might be overkill to run for every change)
Add support for running tests on MS SQL
And enable them in github actions
Fix a long standing bug in new schema on PostgreSQL
Same bug as #3695 which was fixed for new installations but not for upgrades. The fix for any existing impacted installations is the same:
ALTER TABLE vcard_search DROP CONSTRAINT vcard_search_pkey;
ALTER TABLE vcard_search ADD PRIMARY KEY (server_host, lusername);
finding that bug almost made all the effort to enable automated schema upgrade testing worthwhile
Coverage: 33.171% (+0.06%) from 33.11% when pulling 0c1cf43519d1e3cf9555c6c62e222a39b3febaec on nosnilmot:sql-update-tests into 3b345380383a9f31add418f35f27ef6f50db6529 on processone:master.
finding that bug almost made all the effort to enable automated schema upgrade testing worthwhile