Moodle
  1. Moodle
  2. MDL-22414

META: Restore 1.9 backups into Moodle 2.1 (phase 1)

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: 2.1
    • Component/s: Backup
    • Labels:
    • Testing Instructions:
      Hide
      • Take a course backup created in Moodle 1.9
      • Pick the ZIP file in Moodle 2.1 restore process
      • TEST: make sure that the course contents is restored correctly

      Things to focus on: the order of the modules, the modules settings, embedded images, question bank, resources

      Notes: no user data (users, grades, posts, submissions etc) are converted. No blocks are converted.

      Show
      Take a course backup created in Moodle 1.9 Pick the ZIP file in Moodle 2.1 restore process TEST: make sure that the course contents is restored correctly Things to focus on: the order of the modules, the modules settings, embedded images, question bank, resources Notes: no user data (users, grades, posts, submissions etc) are converted. No blocks are converted.
    • Difficulty:
      Difficult
    • Affected Branches:
      MOODLE_20_STABLE
    • Fixed Branches:
      MOODLE_21_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      backup-convert
    • Rank:
      1222

      Description

      It's going to be a highly complex task to perform the transformation of Moodle 1.9.x backups into the new, improved, Moodle 2.x backup format. Too many things have changed between both versions to be able to achieve this easily.

      More info: http://docs.moodle.org/en/Development:Backup_2.0_-_Provide_upwards_compatibility_of_Moodle_1.9.x_backups

      1. Moodle1.9to2.0Restore.pdf
        477 kB
        Mark Nielsen
      2. Moodle1.9to2.0Restore.pdf
        501 kB
        Mark Nielsen
      3. Moodle1.9to2.0Restore.pdf
        473 kB
        Mark Nielsen

        Issue Links

        Progress
        Resolved Sub-Tasks

        Sub-Tasks

        1.
        Modify grouped XML parser in order to provide start/end tag hooks Sub-task Closed Eloy Lafuente (stronk7)
         
        2.
        Implement automatic-closing of all opened tags in the XML writer Sub-task Closed Eloy Lafuente (stronk7)
         
        3.
        R0401 Implement the conversion path selector Sub-task Closed David Mudrak
         
        4.
        R0402 Implement the conversion pre-check Sub-task Closed David Mudrak
         
        5.
        R0404 Implement convert exceptions Sub-task Closed David Mudrak
         
        6.
        R0405 Implement conversion logging Sub-task Closed David Mudrak
         
        7.
        Make the assignment module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        8.
        Make the database module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        9.
        Make the feedback module 1.9 backups restorable in 2.1 Sub-task Closed Rossiani Wijaya
         
        10.
        Make the forum module 1.9 backups restorable in 2.1 Sub-task Closed Andrew Davis
         
        11.
        Make the chat module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        12.
        Make the choice module 1.9 backups restorable in 2.1 Sub-task Closed David Mudrak
         
        13.
        Make the label module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        14.
        Make the lesson module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        15.
        Make the quiz module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        16.
        Make the resource module 1.9 backups restorable in 2.1 Sub-task Closed Andrew Davis
         
        17.
        Make the SCORM module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        18.
        Make the survey module 1.9 backups restorable in 2.1 Sub-task Closed Rossiani Wijaya
         
        19.
        Make the wiki module 1.9 backups restorable in 2.1 Sub-task Closed Aparup Banerjee
         
        20.
        Make the workshop module 1.9 backups restorable in 2.1 Sub-task Closed David Mudrak
         
        21.
        R0410 Automatic data transformations/removal should support multiple XML paths Sub-task Closed David Mudrak
         
        22.
        R0413 Remove raw accesses to the backup_ids_temp table Sub-task Closed David Mudrak
         
        23.
        Modify start/dispatch/end notifications to be called in correct order Sub-task Closed Eloy Lafuente (stronk7)
         
        24.
        Prepare a backup of 1.9 course for testing the conversion Sub-task Closed Tomaz Lasic
         
        25.
        Make the question bank 1.9 backups restorable in 2.1 Sub-task Closed David Mudrak
         
        26.
        Migrate files into correct filearea during the conversion Sub-task Closed David Mudrak
         
        27.
        Make the glossary module 1.9 backups restorable in 2.1 Sub-task Closed David Mudrak
         

          Activity

          Hide
          bouley Hélène added a comment -

          Just an idea : why not transform 1.9 backup with an xsl style sheet?

          Show
          bouley Hélène added a comment - Just an idea : why not transform 1.9 backup with an xsl style sheet?
          Hide
          Robert Russo added a comment -

          Any idea on the timeframe for this being resolved?

          I know it's a complex issue due to the new format. I'm trying to put a timeline to Moodle 2 together, and without restoring of 1.9 backups, we are dead in the water.

          I'd also hate to duplicate work you are doing by tackling this ourselves. Let me know how you want this handled.

          Show
          Robert Russo added a comment - Any idea on the timeframe for this being resolved? I know it's a complex issue due to the new format. I'm trying to put a timeline to Moodle 2 together, and without restoring of 1.9 backups, we are dead in the water. I'd also hate to duplicate work you are doing by tackling this ourselves. Let me know how you want this handled.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Well,

          I don't think the change in the format is the worst part of this, but all the changes in the internals of a lot of components (blocks, files...) are.

          XML transformations can be, more or less, easily handled, but the extra processing needed to convert old structures/files into their new equivalents is the tricky one. Basically it must support all the processing-logic that right now is performed by all the upgrade.php scripts together (pretty complex), but on the fly on each restore. That's is going to be, without doubt, the worst part.

          Moving to DEV backlog (note this cannot be achieved in one sprint and need deeper analysis/split).

          Ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Well, I don't think the change in the format is the worst part of this, but all the changes in the internals of a lot of components (blocks, files...) are. XML transformations can be, more or less, easily handled, but the extra processing needed to convert old structures/files into their new equivalents is the tricky one. Basically it must support all the processing-logic that right now is performed by all the upgrade.php scripts together (pretty complex), but on the fly on each restore. That's is going to be, without doubt, the worst part. Moving to DEV backlog (note this cannot be achieved in one sprint and need deeper analysis/split). Ciao
          Hide
          Martin Dougiamas added a comment -

          I recognise that 100% restore is very hard, but we shouldn't stall on that.

          I think a good approach here is to start with the basics and get something that works most of the time for most 1.9 courses.

          Eloy, can you please work on an implementation plan for this in docs.moodle.org (as best you can without writing code yet) with some estimates and guidelines for staging the implementation with milestones something like:

          1. basic framework for a 1.9 restore plugin (ie a shell that runs but doesn't do much)
          2. restore basic course information
          3. restore basic content (resources only)
          4. restore users and enrolments
          5. restore forums fully
          6. restore all activities as shells without content
          7. restore all data for activities that have not changed much since 1.9
          8. restore blocks
          9. restore other activities

          I think the first five or six should be quite achievable and useful for 2.1, and we have some volunteers ready to do the work. We just need some guidance from you, Eloy.

          Show
          Martin Dougiamas added a comment - I recognise that 100% restore is very hard, but we shouldn't stall on that. I think a good approach here is to start with the basics and get something that works most of the time for most 1.9 courses. Eloy, can you please work on an implementation plan for this in docs.moodle.org (as best you can without writing code yet) with some estimates and guidelines for staging the implementation with milestones something like: basic framework for a 1.9 restore plugin (ie a shell that runs but doesn't do much) restore basic course information restore basic content (resources only) restore users and enrolments restore forums fully restore all activities as shells without content restore all data for activities that have not changed much since 1.9 restore blocks restore other activities I think the first five or six should be quite achievable and useful for 2.1, and we have some volunteers ready to do the work. We just need some guidance from you, Eloy.
          Hide
          Robert Russo added a comment -

          We have to do this anyway, so we'll let Eloy take the lead. He's brilliant and we'd much rather work WITH you guys and have our code in core instead of coming up with our own unique solution and having to deal with very difficult merges/rewrites every upgrade. (cough ... grade-book ... cough)

          We have two full-time developers and one manager about to start on this anyway in the next week or so.

          1,2,3, 5 (without student data) and 6 were the restore functions we were going to implement on our own, so 1-7 sounds great to us for the immediate future.

          Show
          Robert Russo added a comment - We have to do this anyway, so we'll let Eloy take the lead. He's brilliant and we'd much rather work WITH you guys and have our code in core instead of coming up with our own unique solution and having to deal with very difficult merges/rewrites every upgrade. (cough ... grade-book ... cough) We have two full-time developers and one manager about to start on this anyway in the next week or so. 1,2,3, 5 (without student data) and 6 were the restore functions we were going to implement on our own, so 1-7 sounds great to us for the immediate future.
          Hide
          Robert Russo added a comment -

          This is actually the first stage of our Moodle 2 implementation. We are setting timelines on Tuesday, January 18 at 9am CST.

          Show
          Robert Russo added a comment - This is actually the first stage of our Moodle 2 implementation. We are setting timelines on Tuesday, January 18 at 9am CST.
          Hide
          Robert Russo added a comment -

          We've had our first internal meeting and are starting to investigate our options here.

          We will reconvene on February 1 to discuss our options, take a first stab at an implementation plan, setup a preliminary timeline, and try to spot as many potential roadblocks as possible.

          Show
          Robert Russo added a comment - We've had our first internal meeting and are starting to investigate our options here. We will reconvene on February 1 to discuss our options, take a first stab at an implementation plan, setup a preliminary timeline, and try to spot as many potential roadblocks as possible.
          Show
          Nick Thompson added a comment - Here is a paid solution: http://www.moodlenews.com/2011/conversionthingy2-update-convert-moodle-backups-from-1-9-to-2-0/
          Hide
          Robert Russo added a comment -

          That solution is not acceptable to us. We need a transparent solution built into Moodle.

          Show
          Robert Russo added a comment - That solution is not acceptable to us. We need a transparent solution built into Moodle.
          Hide
          Elaine Blakeman added a comment -

          At this point, people just need a solution to this problem. An interim solution (even if it is not transparent) is better than no solution.

          Show
          Elaine Blakeman added a comment - At this point, people just need a solution to this problem. An interim solution (even if it is not transparent) is better than no solution.
          Hide
          Colin Fraser added a comment -

          I am running courses that change, mostly, at the end of every semester. Is there a possibility of getting a process that will allow me to just bring my course materials over, easily and quickly, yet leave my students, gradebook and everything else behind? I reset the courses when they are finished, so there is nothing else I need - as long as I have my backups and can restore them to a Moodle 1.9.x that is going to be running. I think that would help me, if no one else.

          Show
          Colin Fraser added a comment - I am running courses that change, mostly, at the end of every semester. Is there a possibility of getting a process that will allow me to just bring my course materials over, easily and quickly, yet leave my students, gradebook and everything else behind? I reset the courses when they are finished, so there is nothing else I need - as long as I have my backups and can restore them to a Moodle 1.9.x that is going to be running. I think that would help me, if no one else.
          Hide
          Martin Dougiamas added a comment -
          Show
          Martin Dougiamas added a comment - Eloy has updated http://docs.moodle.org/en/Development:Backup_2.0_-_Provide_upwards_compatibility_of_Moodle_1.9.x_backups with more info on what is involved
          Hide
          Robert Russo added a comment -

          Do you have a 1.9 exhaustive example course we can start with?

          Show
          Robert Russo added a comment - Do you have a 1.9 exhaustive example course we can start with?
          Hide
          Mark Nielsen added a comment -

          Attaching "Moodle1.9to2.0Restore.pdf"

          This is my first stab and tackling the overall design/architecture of restoring 1.9 courses in 2.0. The "quick" take on it is that 2.0 currently has two systems in it: backup and restore. To accomplish the 1.9 restores in 2.0, a third system should be added called convert. Convert handles converting non-2.0 backups to 2.0 backups.

          Show
          Mark Nielsen added a comment - Attaching "Moodle1.9to2.0Restore.pdf" This is my first stab and tackling the overall design/architecture of restoring 1.9 courses in 2.0. The "quick" take on it is that 2.0 currently has two systems in it: backup and restore. To accomplish the 1.9 restores in 2.0, a third system should be added called convert. Convert handles converting non-2.0 backups to 2.0 backups.
          Hide
          Mark Nielsen added a comment -

          Attaching updated PDF based on conversation with Eloy.

          Show
          Mark Nielsen added a comment - Attaching updated PDF based on conversation with Eloy.
          Hide
          Mark Nielsen added a comment -

          Attaching latest PDF, early thoughts/ideas on File Convert API

          Show
          Mark Nielsen added a comment - Attaching latest PDF, early thoughts/ideas on File Convert API
          Hide
          Martin Dougiamas added a comment -

          Could you guys please create sub-tasks here for all the steps so everyone has a better idea of the status of this? As soon as the core work is done I'm ready to direct the stable sprint team onto this for a few weeks to take care of all the core plugins.

          Show
          Martin Dougiamas added a comment - Could you guys please create sub-tasks here for all the steps so everyone has a better idea of the status of this? As soon as the core work is done I'm ready to direct the stable sprint team onto this for a few weeks to take care of all the core plugins.
          Hide
          David Mudrak added a comment -

          Changing the title so that this META will be used for the first phase of the project (restoring the course contents without user related data).

          Show
          David Mudrak added a comment - Changing the title so that this META will be used for the first phase of the project (restoring the course contents without user related data).
          Hide
          David Mudrak added a comment -

          Filled Git related info about the pre-integration branch of the project.

          Show
          David Mudrak added a comment - Filled Git related info about the pre-integration branch of the project.
          Hide
          Aparup Banerjee added a comment - - edited

          i've been doing some testing on the david's backup-convert branch and i'm seeing this error with a rather large backup i received from Ulrike (MDL-27447), the error doesn't seem to be specific to questions or quiz however. parser error? bad xml? error follows:

          error/required_not_stashed_data

          More information about this error

          Stack trace:
          line 440 of /backup/converter/moodle1/lib.php: moodle1_convert_empty_storage_exception thrown
          line 689 of /backup/converter/moodle1/handlerlib.php: call to moodle1_converter->get_stash()
          line 386 of /backup/converter/moodle1/lib.php: call to moodle1_course_header_handler->on_course_header_end()
          line 636 of /backup/converter/moodle1/lib.php: call to moodle1_converter->path_end_reached()
          line 230 of /backup/util/xml/parser/processors/simplified_parser_processor.class.php: call to moodle1_parser_processor->notify_path_end()
          line 196 of /backup/util/xml/parser/processors/simplified_parser_processor.class.php: call to simplified_parser_processor->process_pending_startend_notifications()
          line 102 of /backup/util/xml/parser/processors/grouped_parser_processor.class.php: call to simplified_parser_processor->after_path()
          line 183 of /backup/util/xml/parser/progressive_parser.class.php: call to grouped_parser_processor->after_path()
          line 263 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->inform_end()
          line ? of unknownfile: call to progressive_parser->end_tag()
          line 158 of /backup/util/xml/parser/progressive_parser.class.php: call to xml_parse()
          line 137 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->parse()
          line 125 of /backup/converter/moodle1/lib.php: call to progressive_parser->process()
          line 85 of /backup/converter/convertlib.php: call to moodle1_converter->execute()
          line 147 of /backup/util/helper/convert_helper.class.php: call to base_converter->convert()
          line 391 of /backup/controller/restore_controller.class.php: call to convert_helper::to_moodle2_format()
          line 35 of /backup/restore.php: call to restore_controller->convert()

          Show
          Aparup Banerjee added a comment - - edited i've been doing some testing on the david's backup-convert branch and i'm seeing this error with a rather large backup i received from Ulrike ( MDL-27447 ), the error doesn't seem to be specific to questions or quiz however. parser error? bad xml? error follows: error/required_not_stashed_data More information about this error Stack trace: line 440 of /backup/converter/moodle1/lib.php: moodle1_convert_empty_storage_exception thrown line 689 of /backup/converter/moodle1/handlerlib.php: call to moodle1_converter->get_stash() line 386 of /backup/converter/moodle1/lib.php: call to moodle1_course_header_handler->on_course_header_end() line 636 of /backup/converter/moodle1/lib.php: call to moodle1_converter->path_end_reached() line 230 of /backup/util/xml/parser/processors/simplified_parser_processor.class.php: call to moodle1_parser_processor->notify_path_end() line 196 of /backup/util/xml/parser/processors/simplified_parser_processor.class.php: call to simplified_parser_processor->process_pending_startend_notifications() line 102 of /backup/util/xml/parser/processors/grouped_parser_processor.class.php: call to simplified_parser_processor->after_path() line 183 of /backup/util/xml/parser/progressive_parser.class.php: call to grouped_parser_processor->after_path() line 263 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->inform_end() line ? of unknownfile: call to progressive_parser->end_tag() line 158 of /backup/util/xml/parser/progressive_parser.class.php: call to xml_parse() line 137 of /backup/util/xml/parser/progressive_parser.class.php: call to progressive_parser->parse() line 125 of /backup/converter/moodle1/lib.php: call to progressive_parser->process() line 85 of /backup/converter/convertlib.php: call to moodle1_converter->execute() line 147 of /backup/util/helper/convert_helper.class.php: call to base_converter->convert() line 391 of /backup/controller/restore_controller.class.php: call to convert_helper::to_moodle2_format() line 35 of /backup/restore.php: call to restore_controller->convert()
          Hide
          Aparup Banerjee added a comment -

          oh, sorry, never mind that, its due to missing course_files in the backup, theres only the xml in it :-|

          Show
          Aparup Banerjee added a comment - oh, sorry, never mind that, its due to missing course_files in the backup, theres only the xml in it :-|
          Hide
          David Mudrak added a comment -

          Should be fixed now, thanks for letting me know.

          Show
          David Mudrak added a comment - Should be fixed now, thanks for letting me know.
          Hide
          David Mudrak added a comment -

          All subtasks are done now. This definitely needs a lot of testing and careful comparison of the original course contents and the restored one. Thanks everybody who joined the discussion here and/or was participating on the development.

          Show
          David Mudrak added a comment - All subtasks are done now. This definitely needs a lot of testing and careful comparison of the original course contents and the restored one. Thanks everybody who joined the discussion here and/or was participating on the development.
          Hide
          Aparup Banerjee added a comment -

          just in case its useful, attaching a 1.9 backup of a gibberish course with all MODs - (default backup settings were used.)

          Show
          Aparup Banerjee added a comment - just in case its useful, attaching a 1.9 backup of a gibberish course with all MODs - (default backup settings were used.)
          Hide
          David Mudrak added a comment -

          Submitting for the integration.

          Show
          David Mudrak added a comment - Submitting for the integration.
          Hide
          Martin Dougiamas added a comment -

          Yay!

          Show
          Martin Dougiamas added a comment - Yay!
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Hoy! (that means, today, Tuesday, I'll be integrating this). :-P

          David, congrats! No matter if this work or no... you are a genius! Yay!

          Ciao

          PS: Of course, better if works, lol.

          Show
          Eloy Lafuente (stronk7) added a comment - Hoy! (that means, today, Tuesday, I'll be integrating this). :-P David, congrats! No matter if this work or no... you are a genius! Yay! Ciao PS: Of course, better if works, lol.
          Hide
          Aparup Banerjee added a comment -

          Eloy,

          just so you know i've got an (to-be-created) integration request in MDL-27819 that could possibly go in as part of this branch or based on integration.. i'm waiting for this integration but just in case you feel like doing them together, its here :

          https://github.com/nebgor/moodle/commit/35689c8bbe0176bc5709ce325c159780f7146ee6

          Show
          Aparup Banerjee added a comment - Eloy, just so you know i've got an (to-be-created) integration request in MDL-27819 that could possibly go in as part of this branch or based on integration.. i'm waiting for this integration but just in case you feel like doing them together, its here : https://github.com/nebgor/moodle/commit/35689c8bbe0176bc5709ce325c159780f7146ee6
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Integrated, thanks!
          (yay, yay, yay!)

          Next steps should be something like:

          • blocks
          • groups / grouping definitions

          And of course, test it with as many courses as possible.

          Special thanks to MR for igniting the process and David for finishing it!

          PS: I'm going to integrate some related issues that fix some know problems in the conversion...

          Show
          Eloy Lafuente (stronk7) added a comment - Integrated, thanks! (yay, yay, yay!) Next steps should be something like: blocks groups / grouping definitions And of course, test it with as many courses as possible. Special thanks to MR for igniting the process and David for finishing it! PS: I'm going to integrate some related issues that fix some know problems in the conversion...
          Hide
          Michael de Raadt added a comment -

          For people within HQ, Tomaz is collecting course backups at the following network location...

          \\SERVER\Documents\development\Course backups for testing

          Be aware that some of these backups contain confidential user data and should therefore not be added to publicly available sites.

          Show
          Michael de Raadt added a comment - For people within HQ, Tomaz is collecting course backups at the following network location... \\SERVER\Documents\development\Course backups for testing Be aware that some of these backups contain confidential user data and should therefore not be added to publicly available sites.
          Hide
          Michael de Raadt added a comment - - edited

          Testing with the following file...

          \\SERVER\Documents\development\Course backups for testing\Courses\Features Demo.zip

          ...I observed these errors at the Settings stage (with Developer debugging)...

          Notice: Undefined index: matchoptions in D:\xampp\htdocs\moodle_testing\question\type\match\backup\moodle1\lib.php on line 59
          Notice: Undefined index: original_site_identifier_hash in D:\xampp\htdocs\moodle_testing\backup\util\helper\backup_general_helper.class.php on line 141

          ...but the restore was successful and a brief testing of the activities/resource showed they worked.

          When I repeated the restore of the same backup, the same errors appeared.

          I ran Tomaz's Water backup (from the school demo) and it ran through without any errors.

          There could be an issue with sub-plugins.

          I restored my own simple 1.9 backup that included a contributed assignment type module...

          \\SERVER\Documents\development\Course backups for testing\Courses\Michael's Simple Backup including an assignment type.zip

          ...and during the final stages of restoring it reported errors...

          Incorrect assignment type: peerreview
          line 3338 of \mod\assignment\lib.php: call to debugging()
          line 1125 of \course\lib.php: call to assignment_get_coursemodule_info()
          line 1124 of \lib\modinfolib.php: call to get_array_of_activities()
          line 384 of \backup\moodle2\restore_stepslib.php: call to rebuild_course_cache()
          line 34 of \backup\util\plan\restore_execution_step.class.php: call to restore_rebuild_course_cache->define_execution()
          line 153 of \backup\util\plan\base_task.class.php: call to restore_execution_step->execute()
          line 148 of \backup\util\plan\base_plan.class.php: call to base_task->execute()
          line 157 of \backup\util\plan\restore_plan.class.php: call to base_plan->execute()
          line 299 of \backup\controller\restore_controller.class.php: call to restore_plan->execute()
          line 144 of \backup\util\ui\restore_ui.class.php: call to restore_controller->execute_plan()
          line 45 of \backup\restore.php: call to restore_ui->execute()

          The restore was still successful, but when it was restored, the assignment type module activity was restored, even though that assignment type was not installed. When I clicked on the link to the activity it complained that the code wasn't there.

          One thing I noticed that didn't come across with the restored 1.9 backup were the enrolment methods.

          I've asked Anthony to provide a course backup that contains lots of contributed modules to see what happens with that.

          Show
          Michael de Raadt added a comment - - edited Testing with the following file... \\SERVER\Documents\development\Course backups for testing\Courses\Features Demo.zip ...I observed these errors at the Settings stage (with Developer debugging)... Notice: Undefined index: matchoptions in D:\xampp\htdocs\moodle_testing\question\type\match\backup\moodle1\lib.php on line 59 Notice: Undefined index: original_site_identifier_hash in D:\xampp\htdocs\moodle_testing\backup\util\helper\backup_general_helper.class.php on line 141 ...but the restore was successful and a brief testing of the activities/resource showed they worked. When I repeated the restore of the same backup, the same errors appeared. I ran Tomaz's Water backup (from the school demo) and it ran through without any errors. There could be an issue with sub-plugins. I restored my own simple 1.9 backup that included a contributed assignment type module... \\SERVER\Documents\development\Course backups for testing\Courses\Michael's Simple Backup including an assignment type.zip ...and during the final stages of restoring it reported errors... Incorrect assignment type: peerreview line 3338 of \mod\assignment\lib.php: call to debugging() line 1125 of \course\lib.php: call to assignment_get_coursemodule_info() line 1124 of \lib\modinfolib.php: call to get_array_of_activities() line 384 of \backup\moodle2\restore_stepslib.php: call to rebuild_course_cache() line 34 of \backup\util\plan\restore_execution_step.class.php: call to restore_rebuild_course_cache->define_execution() line 153 of \backup\util\plan\base_task.class.php: call to restore_execution_step->execute() line 148 of \backup\util\plan\base_plan.class.php: call to base_task->execute() line 157 of \backup\util\plan\restore_plan.class.php: call to base_plan->execute() line 299 of \backup\controller\restore_controller.class.php: call to restore_plan->execute() line 144 of \backup\util\ui\restore_ui.class.php: call to restore_controller->execute_plan() line 45 of \backup\restore.php: call to restore_ui->execute() The restore was still successful, but when it was restored, the assignment type module activity was restored, even though that assignment type was not installed. When I clicked on the link to the activity it complained that the code wasn't there. One thing I noticed that didn't come across with the restored 1.9 backup were the enrolment methods. I've asked Anthony to provide a course backup that contains lots of contributed modules to see what happens with that.
          Hide
          Michael de Raadt added a comment -

          I think it's ready for integration to allow for further testing and bug fixing.

          Show
          Michael de Raadt added a comment - I think it's ready for integration to allow for further testing and bug fixing.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          And now this is part of Moodle 2.1beta, yay! Closing.

          Show
          Eloy Lafuente (stronk7) added a comment - And now this is part of Moodle 2.1beta, yay! Closing.
          Hide
          Elaine Blakeman added a comment -

          If you open a new ticket for Phase II can you post the link here? I am following this issue. Thanks!

          Show
          Elaine Blakeman added a comment - If you open a new ticket for Phase II can you post the link here? I am following this issue. Thanks!
          Hide
          Aparup Banerjee added a comment -

          not sure if phase 2 or not but just a ping here that there's some action going on at MDL-32880 for blocks (1.9 conversions to 2.?)

          Show
          Aparup Banerjee added a comment - not sure if phase 2 or not but just a ping here that there's some action going on at MDL-32880 for blocks (1.9 conversions to 2.?)

            People

            • Votes:
              69 Vote for this issue
              Watchers:
              60 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: