I have a very old 1.9 moodle site that I've been tasked with upgrading to 3.6+. I'm still reviewing the process and documents/server reqs, etc, but I wondered if people who've been through this process might give some feedback on how long it 'should' take to go through that process, for a relatively small/simple site? I appreciate this is just a ballpark estimate.
I'm weighing the pros/cons of just building a new 3.6+ site and rebuilding courses from scratch, because they're relatively simple. However, that has issues with losing archived student data.
Thoughts/advise on likely problems and time-frame much appreciated.
My vote ... if we were voting ... would be to make full 1.9 backups of courses. Stand up a fresh 3.5.highest (that's long term support) and get it minimally configured. XFer all of the 1.9 backups to a file system repo in the new server ... restore what one can from there. One will need to export all users and then import all users into the 3.5.x - watch out for admin account conflicts.
Have done 1.9.x sites to higher 3.x versions on same server before ... and if going route, would do that only by command line and using git. First 'trick' is to get the current 1.9.x under git and upgraded to the highest 1.9.x. If one cannot do that - stop ... go no further.
Full site backup at that point ... code + data directory + db dump ... that also from command line as Moodle no admin tool in any version of Moodle to do a full site backup.
Now the 'fun' begins ... map out where one is to go ... check server environment to see php version, MySQL version, php extensions. Update the component, then check in the drop down list for version of moodle anything higher than current 1.9.highest.
Along the 'march' .... and it is a 'march' ... one will have to upgrade PHP and MySQL before making next hop upwards in Moodle using git ... but you can't install those upgrades too soon or one cannot run the version of Moodle you have ... thus will also struggle getting to the next highest version of Moodle in your road map,
So briefly ... 1.9.current to 1.9.highest -> 2.1.highest -> and at this point folks will agree/disagree but I would do 2.3.highest (at that version were some major changes to Assignments ... best take care of that early ... now pick up the next hop at 2.7.highest - changes there - next 2.9.highest -> 3.1.highest ... well you should get the idea by now.
Again ... at each hop - full site backup before taking the next hop (should have mentioned that if a hop fails one has to restore the backup of the previous version that worked ... then inspect and fix what broke the upgrade o the next hop).
You'll need a lot of space to keep multiple full site backups.
BTW when/if one gets there ... Legacy file system is in affect site wide and in all courses - happened on the first hop from 1.9.highest to the 2.x.
Time frame ... well, Rome wasn't built in a day ... and neither will a 'marched' moodle ... more like 2 days ... and I mean full days ... if all goes well ... the stars and moon are aligned just right ... etc. etc.
Oh, yeah ... I didn't even ask about hardware and specs of the server where the 1.9.x resides ... other major catch 22 is just that hardware and specs. If on shared hosting ... you didn't mention where it was hosted ... don't do it ... don't even try! Higher versions of Moodle are (comparatively and IMHO) a memory hog ... does more ... needs more.
There's my 2 'sense' ... nope, spelled it right!
'spirit of sharing', Ken
thanks so much for taking the time to provide these details. I'll work through this gradually to see which approach seems the most efficient. If it weren't for the concern of retaining student data/records in courses, it seems putting up a new 3.x site and rebuilding simple courses would be faster.
Part of my original reason for asking is I'd received an estimate for this process as likely to take up to 100 hours or approximately 12 working days. Based on dealing with some 2.5-3.6 upgrades, that seemed like a very liberal estimate. Caveats aside, and appreciating the 1.9x to 2.x hops are bigger problems, it would seem your expectation of 2 full days best case is still more reasonable. Anyway, thanks again - I may well be posting back here once everything goes haywire.
Thank you Ken for your insight and Sven for posting the question. I was actually about to post about the same thing. For the past few week (maybe months off and on) I’ve been looking into upgrading my organizations internal Moodle server from 2.0 to 3.5. As far as I know, it has been neglected for the better part of a decade and was dropped in my lap as the last guy left his position. In my efforts, following what I’ve found in the Moodle Docs, I found that I must upgrade to 2.2 then 2.7, followed by 3.1 and finally 3.5 with upgrades to PHP and MySQL along the way, and possibly some things I haven’t even thought of or seen yet too, all while in an OS way past its EOL and completely unsupported.
That being the case, I created a development copy of the VM server and then upgraded to 2.2 which was a breeze, super easy. I then tried to do a local TKLBAM backup to a fresh higher version release of Turnkey Moodle with no luck as I was bombarded by a bunch of errors and configuration issues that I had no idea how to resolve with my limited linux skills.
So then I thought, if I could upgrade PHP and get to 2.7, then I could make the leap via TKLBAM to a supported OS and updated Moodle version and everything would be gravy. But nope, trying to manually configure and install PHP, I either broke the database connection or Apache, or both.
At this point I feel like going with something that I know will work, which is probably what I should have done to begin with, and that is exactly what Ken suggests, making backups of the courses and transferring and/or recreating them (while maintaining a backup, of course) to a fresh 3.5 VM of Moodle. That is unless, someone has some miraculous solution to this conundrum.
What version of PHP are you running the 1.9 Moodle site on?
- Upgrade 1.9 to 2.0 if you have a LOT of quiz attempts that you want to migrate. Otherwise you can go from 1.9 to 2.1. Moodle version 2.0 introduced a new Question Engine, so you'll need to check that all your quiz attempts upgraded successfully .
- Make sure you're on PHP 5.3.2 then upgrade 2.0 (or 2.1) to 2.2.11.
- Upgrade PHP to version 5.4.
- Upgrade Moodle 2.2.11 to 2.7.20.
- Upgrade Moodle2.7.20 to 3.1.14.
- Upgrade PHP to version 7.0.31.
- Upgrade Moodle 3.1.14 to the latest 3.6 version.
- Upgrade PHP to the latest version.