Priority field mappings
25 critical mappings.
Source
mdl_user.id
Target
users.legacy_moodle_user_id
Rule
Preserve source key in crosswalk; target UUID is primary key
Verification
Never use email alone as identity key; link to IdP immutable subject after account reconciliation
Sign in to update status, owner and notes.
Source
mdl_user.auth + username + email
Target
external_identity_links.provider + subject + email_snapshot
Rule
Map from existing IdP claims; Moodle auth field is migration hint only
Verification
SSO provider, issuer, subject claim, tenant and account-linking rules require confirmation
Sign in to update status, owner and notes.
Source
mdl_user.deleted / suspended / confirmed
Target
users.account_status
Rule
Explicit status mapping; retain original flags for audit
Verification
Agree precedence for deleted/suspended/unconfirmed accounts; do not reactivate by default
Sign in to update status, owner and notes.
Source
mdl_user.firstname, lastname, email, phone1, city, country, lang, timezone
Target
user_profiles
Rule
Field-by-field with normalization and PII review
Verification
Check custom profile fields, duplicates, data retention, consent and user visibility
Sign in to update status, owner and notes.
Source
mdl_user_info_field + mdl_user_info_data
Target
profile_field_definitions + user_profile_values
Rule
Definition/value model; preserve datatype and category
Verification
Need definitions and actual rows; map plugin-specific data types
Sign in to update status, owner and notes.
Source
mdl_course.id, category, fullname, shortname, idnumber, summary, visible, startdate, enddate
Target
courses + course_categories
Rule
Preserve legacy ID, hierarchy, visibility, dates and HTML summary
Verification
Verify course format, format options, completion rules, custom fields and hidden courses
Sign in to update status, owner and notes.
Source
mdl_course_sections.id, course, section, name, summary, visible, sequence
Target
course_units / course_sections
Rule
Map ordering and section metadata; resolve course ID
Verification
sequence/format semantics and embedded links require Moodle format verification
Sign in to update status, owner and notes.
Source
mdl_course_modules.id, course, module, instance, section, idnumber, visible, completion, added, availability
Target
learning_activities
Rule
Resolve module name from mdl_modules; join to plugin-specific instance table
Verification
Every module type needs a support decision; availability JSON may reference IDs/context
Sign in to update status, owner and notes.
Source
mdl_enrol.id, course, enrol, status, roleid, timestart, timeend
Target
enrolment_sources
Rule
Map supported enrolment methods and active status
Verification
External enrolment plugins/config may require app-code review; secrets excluded
Sign in to update status, owner and notes.
Source
mdl_user_enrolments.id, enrolid, userid, status, timestart, timeend, modifierid
Target
course_enrolments
Rule
Join through source crosswalks; preserve dates and state
Verification
Verify overlapping enrolments and whether expired enrolments remain visible
Sign in to update status, owner and notes.
Source
mdl_role_assignments.roleid, contextid, userid, component, itemid
Target
user_course_roles / access_assignments
Rule
Translate Moodle roles + context to target RBAC policies
Verification
Moodle capability inheritance is not a direct role-to-role mapping; security design required
Sign in to update status, owner and notes.
Source
mdl_course_completions.userid, course, timeenrolled, timestarted, timecompleted, reaggregate
Target
course_completions
Rule
Preserve historical completion values and dates
Verification
Compare source completion report; retain source state even if target rules differ
Sign in to update status, owner and notes.
Source
mdl_course_modules_completion.coursemoduleid, userid, completionstate, viewed, timemodified
Target
activity_completions
Rule
Map completion enum explicitly; use activity crosswalk
Verification
Verify completionstate enum and plugin-specific completion semantics
Sign in to update status, owner and notes.
Source
mdl_quiz + mdl_quiz_attempts + mdl_question_usages + mdl_question_attempts + mdl_question_attempt_steps + mdl_question_attempt_step_data
Target
assessments + assessment_attempts + attempt_events + responses
Rule
Preserve attempts, question version, sequence, state, mark and timestamps
Verification
Schema inventory needs exact join review; migration must be read-only historical unless full quiz engine parity is built
Sign in to update status, owner and notes.
Source
mdl_question + mdl_question_bank_entries + mdl_question_versions + qtype-specific tables
Target
assessment_questions + question_versions + answer_options
Rule
Transform by question type and version; keep legacy IDs
Verification
Must inspect qtype plugins and related answer/hint/feedback tables; cannot safely map mdl_question alone
Sign in to update status, owner and notes.
Source
mdl_grade_items + mdl_grade_grades + mdl_grade_categories + mdl_grade_settings
Target
grade_items + grades + gradebook_categories
Rule
Preserve raw/final grade, scale, feedback, overrides and hidden/locked state
Verification
Calculated grade formulas and aggregation settings require gradebook parity tests
Sign in to update status, owner and notes.
Source
mdl_customcert + mdl_customcert_templates + mdl_customcert_issues + mdl_files
Target
credential_templates + issued_credentials + file_assets
Rule
Preserve issue ID/code/recipient/date and verification data; copy PDF/binary if stored
Verification
Confirm actual customcert table set, generated PDFs, template variables and QR/verification URLs
Sign in to update status, owner and notes.
Source
mdl_files.contenthash, pathnamehash, contextid, component, filearea, itemid, filepath, filename, filesize, mimetype, status
Target
file_assets + file_links in object storage
Rule
Export bytes from moodledata; hash-check; map context and ownership
Verification
SQL-only dump cannot supply file bytes; requires moodledata and access-control design
Sign in to update status, owner and notes.
Source
mdl_local_learner_payments / PayU transaction tables / payment tables
Target
payments + payment_transactions + reconciliation records
Rule
Map payment intent, provider reference, amount/currency, status, timestamps and owner
Verification
Inspect full column definitions, gateway callback code, idempotency, refunds and reconciliation; never store secrets
Sign in to update status, owner and notes.
Source
mdl_job* / mdl_interview* / mdl_project* / mdl_mentor* / mdl_trainer*
Target
jobs, applications, interviews, projects, mentors, trainers (only if product scope confirms)
Rule
Map active records and relationship tables; preserve ownership/status/audit timestamps
Verification
Need plugin source, workflow/state enums, row counts and business-owner confirmation
Sign in to update status, owner and notes.
Source
mdl_cities / mdl_states / mdl_districts / mdl_countries / mdl_universities / mdl_university_master
Target
geographic_reference_data + institutions
Rule
Normalize IDs and parent relationships; deduplicate master variants
Verification
Confirm overlapping city/university masters and consumers in registration/import APIs
Sign in to update status, owner and notes.
Source
mdl_notifications (custom table likely) + message tables
Target
notifications + delivery receipts if in-scope
Rule
Retain user-visible durable notifications; exclude queue/session delivery internals
Verification
Schema/code inspection needed to distinguish history from transient queue or plugin state
Sign in to update status, owner and notes.
Source
mdl_logstore_standard_log
Target
Object-storage archive: compressed partitioned JSONL/Parquet
Rule
Export read-only; partition by date; compress; checksum; access-controlled retention
Verification
690.54 MB / ~3.26m rows per supplied inventory; confirm actual count, retention and analytics requirements
Sign in to update status, owner and notes.
Source
mdl_sessions
Target
Rule
Exclude and invalidate at cutover
Verification
New app sessions should be created after SSO; verify logout/revocation behavior
Sign in to update status, owner and notes.
Source
password hashes, reset tokens, OAuth/SAML tokens, MFA secrets
Target
None in target business tables
Rule
Do not migrate; use existing IdP identity lifecycle
Verification
Confirm account linking, MFA, password reset ownership and emergency access procedures
Sign in to update status, owner and notes.