Migration from Dokeos 1.8.5 to Chamilo 2.0

The integration of generic code

1. Dokeos185MigrationUtilities
  • function validate_settings()
    • Check the existence of the dokeos platform (try to load the config file)
    • Check if the dokeos platform is accessible (try to connect to the database with the data from the config file)
    • Check if the prerequisites of the selected blocks are met
  • function get_migration_blocks()
    • Returns a list of all the available blocks in the correct order (the order is specified below)
2. Dokeos185DataManager
  • Retrieval of configuration file in '/main/inc/conf/configuration.php';
  • function count_all_objects()
    • Set the correct database and count all the objects from the
  • function retrieve_all_objects()
    • Set the correct database and retrieve the objects with given conditions
  • Helper functions for specific data
    • function get_admin_id()
    • function get_item_property()
    • function get_owner_id()
    • function retrieve_user_by_fullname()
    • function retrieve_quiz_rel_questions()

Differences / extensions on the generic system


1. Dokeos185MigrationDataClass
  • Extension on MigrationDataClass
  • Defines the data manager in function get_data_manager()
  • Additional abstract function get_database_name() because dokeos185 exists out of multiple databases
  • Extended some methods to include the database_name (IdReferences, FailedElements)
2. Dokeos185TextFieldParser
  • Parser to parse images, audio files and flash files from text fields like "description"
  • Splitted into 3 subparsers for audio, flash and images
  • Each field can be parsed with one or more of these three parsers
  • Additional help method in Dokeos185MigrationDataClass to parse multiple types at once
  • Keeps track of a list of included objects (documents) to add them to the included objects of the newly created object

Course specific

1. Dokeos185CourseDataMigrationDataClass
  • Extension on Dokeos185MigrationDataClass
  • Used for data classes within one course
  • Added additional property course, because it is needed during the migration of each and every data class
  • Added additional property item property, because it is needed in most of the data classes that are in a course
  • Added some additional helper functions
    • Create publication (creates a new publication in chamilo 2.0)
    • Create feedback (adds a feedback to a publication)
    • Create complex content object item (adds a content object to another content object)
  • Implemented get_database_name to retrieve the database name from the current course
2. CourseDataMigrationBlock
  • Extension on Dokeos185MigrationBlock
  • Different migration process
    • Retrieve all courses (in chunks of 1000 courses)
    • For each of the data classes, set the current course and migrate using the regular migration process
    • The current course will be given to each object that is being converted
  • Caching method for get_data_classes because we need to call this function for every course
    • Uses a new abstract function get_course_data_classes()

Migration blocks

This section gives you an overview of all the blocks in the migration process from dokeos 1.8.5 to chamilo 2.0

Missing migration blocks

  • Gradebook
  • Hotpotatoes
  • Sessions (not existing in 2.0)
  • Student Publication
  • Assignments
  • Shared survey
  • Some single tables that are attached to one or more steps above (described in the wiki page of the step)
  • Single tables
  • Roles and permissions
    • Chat connected
    • Online connected
    • Online link
    • Openid association
    • Php session
    • Resource
    • Templates

Known Issues

  • We need to check every block to see if we included enough checks on id references / validations

Updated by Sven Vanpoucke over 11 years ago ยท 16 revisions