Upgrade from 3.7.4 to 3.9 : Query blocking upgrade process

Upgrade from 3.7.4 to 3.9 : Query blocking upgrade process

by agathe hubert -
Number of replies: 2

Hi,

I've tried to upgrade from 3.7.4 to 3.9. The upgrade progress block on the message_popup stage.

The environment is : pgpool-II-12, postgresql 12, php 7.3. The database is quite big (60GB)

I checked the database server (postgresl 12) and the query "DELETE FROM mdl_message_popup_notifications  where notificationid NOT IN (SELECT id FROM mdl_notifications);" never end.

To fix the problem I had to change the query to :

$DB->execute("DELETE FROM mdl_message_popup_notifications mpn where not exists (select null from mdl_notifications n where mpn.notificationid =n.id)");

on the file :  message/output/popup/db/upgrade.php

function : xmldb_message_popup_upgrade

Does someone already have this problem ?

Is it a good solution ?  Indeed, on my test environment it worked but I feared to make such a patch in production environment.

thanks a lot


Average of ratings: -
In reply to agathe hubert

Re: Upgrade from 3.7.4 to 3.9 : Query blocking upgrade process

by Ken Task -
Picture of Particularly helpful Moodlers

Check your version.php file for version info.   You'll see that 3.9 is a dev version .... development ... with Release candidate versions to come before official stable release.

If you are joining the ranks of 'testers' find out where to file the bug report and how.

https://docs.moodle.org/dev/Releases

https://download.moodle.org/releases/development/

Good thing you didn't do your production server!!!! smile

'SoS', Ken

In reply to Ken Task

Re: Upgrade from 3.7.4 to 3.9 : Query blocking upgrade process

by agathe hubert -
Thanks for your answer.
I try to anticipate the moodle 3.9 coming because we will upgrade during the summer smile. I'm looking forward 15th june for the stable release smile
I also tried to search if this problem already exists in the tracker and can't find it. As I'm new on the tracker I can't post this problem.


(I hope my english is correct and apologize if it is not)