Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-52291

Table "qtype_multichoice_options" does not exist!!! Upgrading from 2.4.10 to 3.0

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.0
    • Fix Version/s: 3.0.1
    • Component/s: Questions
    • Labels:
    • Testing Instructions:
      Hide

      Upgrading from old sites (< 2.6).

      0) Install Moodle version before 2.6 (2.4, 2.5 is ok).
      1) Ensure it contains some multianswer (cloze) questions having multichoice questions on it* (you can use restore the attached backup file which has a course with the necessary activities)
      2) Upgrade to Moodle 3.0.x+ (master), verify the process ends without problems and the question looks (preview) ok.

      Upgrading from newer sites (>= 2.6).

      0) Install Moodle version equal or after 2.6.
      1) Ensure it contains some multianswer (cloze) questions having multichoice questions on it*. (you can use restore the attached backup file which has a course with the necessary activities)
      2) Upgrade to Moodle 3.0.x+ (master), verify the process ends without problems and the question looks (preview) ok.

      * Trick: Some trick, known content (cloze example, backup file...) to ensure the data is correct for testing purposes is welcome. Surely the examples in the docs are ok, but need confirmation. <== confirmed, I've been able to reproduce the problem with the 2 example questions provided there created in test site.

      Show
      Upgrading from old sites (< 2.6). 0) Install Moodle version before 2.6 (2.4, 2.5 is ok). 1) Ensure it contains some multianswer (cloze) questions having multichoice questions on it* (you can use restore the attached backup file which has a course with the necessary activities) 2) Upgrade to Moodle 3.0.x+ (master), verify the process ends without problems and the question looks (preview) ok. Upgrading from newer sites (>= 2.6). 0) Install Moodle version equal or after 2.6. 1) Ensure it contains some multianswer (cloze) questions having multichoice questions on it*. (you can use restore the attached backup file which has a course with the necessary activities) 2) Upgrade to Moodle 3.0.x+ (master), verify the process ends without problems and the question looks (preview) ok. * Trick: Some trick, known content (cloze example, backup file...) to ensure the data is correct for testing purposes is welcome. Surely the examples in the docs are ok, but need confirmation. <== confirmed, I've been able to reproduce the problem with the 2 example questions provided there created in test site.
    • Workaround:
      Hide

      Upgrade to current Moodle 2.9.x+ and then to Moodle 3.x+

      Show
      Upgrade to current Moodle 2.9.x+ and then to Moodle 3.x+
    • Affected Branches:
      MOODLE_30_STABLE
    • Fixed Branches:
      MOODLE_30_STABLE
    • Pull from Repository:
    • Pull Master Branch:

      Description

      Error

      During the upgrade to Moodle 3.0 from 2.4.10 (via CLI). When it upgrade the qtype plugins, it show this error:

      ++ Success ++
      -->qtype_match
      ++ Success ++
      -->qtype_missingtype
      ++ Success ++
      -->qtype_multianswer
      !!! Table "qtype_multichoice_options" does not exist !!!
      !! 
      Error code: ddltablenotexist !!
      !! Stack trace: * line 585 of /lib/dml/moodle_database.php: dml_exception thrown
      * line 1428 of /lib/dml/moodle_database.php: call to moodle_database-&gt;where_clause()
      * line 76 of /question/type/multianswer/db/upgrade.php: call to moodle_database-&gt;get_record()
      * line 545 of /lib/upgradelib.php: call to xmldb_qtype_multianswer_upgrade()
      * line 1641 of /lib/upgradelib.php: call to upgrade_plugins()
      * line 171 of /admin/cli/upgrade.php: call to upgrade_noncore()
       !!
      

      I found in line 76 of */question/type/multianswer/db/upgrade.php * that in fact, it seeks qtype_multichoise_option table but it does not exist.
      I have seen in question/type/multichoice/db/upgrade.php that this table is renamed to qtype_multichoice_options in one of the upgrade steps as I show below.

      if ($oldversion < 2013092301) {
       
              // Define table question_multichoice to be renamed to qtype_multichoice_options.
              $table = new xmldb_table('question_multichoice');
       
              // Launch rename table for question_multichoice.
              $dbman->rename_table($table, 'qtype_multichoice_options');
       
              // Record that qtype_match savepoint was reached.
              upgrade_plugin_savepoint(true, 2013092301, 'qtype', 'multichoice');
          }
      

      I think is a core issue becouse it should upgrade first qtype_multichoice and then qtype_multipleanswer.

      This issue can only be reproduced upgrading from any version lower than 2.6 to moodle 3.0 via CLI. In this case, from moodle 2.4.

      FULL STEPS

      time /usr/bin/php /var/www/html/moodle/admin/cli/upgrade.php --non-interactive | tee /log/"`date +"%Y%m%d_%H%M"`_upgrade.log"
      

      I know that I can upgrade first to any version lower than moodle 3.0 and then to 3.0, but i think it shouldn't occur.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                2 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  21/Dec/15