Installation

Migrating Courses from WW 2.16/2.17 (Ubuntu) to WW 2.19 (RHEL)

Migrating Courses from WW 2.16/2.17 (Ubuntu) to WW 2.19 (RHEL)

by Tim Alderson -
Number of replies: 2

We are in the planning phase of transitioning WW infrastructure and could use some guidance on migration.

Currently, we operate two WeBWorK servers: one running version 2.16 and the other on 2.17, both hosted on Ubuntu. Our IT team will be setting up a new server running WeBWorK 2.19 on RHEL. We hope to migrate existing courses from both of the older servers to the new one. Given we have two servers to migrate, and versions are different, it would seem the disaster recovery method might not be the way to go.

First guess would be course archiving and restoration, but I'm unsure about potential compatibility issues across these versions. Specifically, could use help on the following:

1. Is it feasible to archive courses on the 2.16/2.17 servers and then transfer the archived course to the 2.19 server, and "unarchive" there?

2. Are there known issues with restoring archived courses from older versions into 2.19?

3. Are there other recommendations for bulk migration, beyond doing course-by-course manual transfers of problem sets?

Would greatly appreciate any insight.

In reply to Tim Alderson

Re: Migrating Courses from WW 2.16/2.17 (Ubuntu) to WW 2.19 (RHEL)

by Danny Glin -

It sounds like this is already what you're planning, but in terms of installing the WeBWorK software on your new server I would recommend starting from scratch rather than copying the WeBWorK code and then updating.  Once you have 2.19 up and running you can migrate content as described below.

Unarchiving courses from old versions of WeBWorK on the current version is pretty reliable.  After you unarchive you will be given the option to upgrade the course, which you should do.  One thing to note is that courses that were imported from previous versions may not have the links to the Contrib problem library and the updated Student_Orientation homework set that you would see in new courses that are created from the current model course.  It's possible that the "Upgrade course" tool will handle this by the time version 2.20 is released.  In the meantime you can create these links manually to match the model course.

In terms of efficiency of migrating all of your courses, it depends on how many there are.  Here's one possible approach:

  1. Install WeBWorK fresh on the new server.
  2. mysqldump the database from one of your old servers (the one with the most courses; let's call it server A), and import this database into the new server.
  3. Copy the courses directory from server A to your new server (I would make a tgz archive and copy it that way, but rsync should work too).
  4. Create a new admin course on the new server using the addcourse script.  Note that in the current version of WW the admin course does not need to be named "admin", and in your case you should call it something else so it doesn't conflict with the admin course that would have been migrated from the old server.  Just remember to set the $admin_course_id in site.conf to the name of this newly created course.
  5. Log in to the admin course and upgrade courses, which should get all of the courses from server A up to 2.19.
  6. On your other old server archive each of the courses.  Copy the archive files to the new server.  Note that in 2.19 course archives are stored in /opt/webwork/courses/[admin course name]/archives.  You may need to create this directory and give your web server permission to read and write to it.  Then you can unarchive any course archives that are stored there using the Course Administration interface.  As previously mentioned, after you unarchive a course you will be given the option to upgrade it to the current version.
In reply to Danny Glin

Re: Migrating Courses from WW 2.16/2.17 (Ubuntu) to WW 2.19 (RHEL)

by Tim Alderson -
Thank you, Danny. That's extremely helpful. Will post back if anything unexpected occurs.