You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Ubuntu上基于Postgres的现有Moodle项目迁移到Windows的MariaDB环境

Moodle 存量项目从Postgres迁移到Windows XAMPP MariaDB环境操作方案

可行性说明

该迁移方案完全可落地,无需重新安装Moodle,核心完成异构数据库转换及Windows环境适配两步操作即可完成存量项目迁移。

前置操作

  • 先将原Ubuntu环境的Moodle升级到和迁移后使用的版本完全一致,避免版本差异引发数据兼容问题
  • 原Moodle后台开启维护模式,执行命令php admin/cli/maintenance.php --enable,禁止迁移过程中新数据写入
  • 完整备份三份核心数据:Postgres完整数据库备份、Moodle站点根目录全量文件、moodledata数据目录全量文件,备份完成后校验文件完整性

步骤1:Postgres到MariaDB异构数据库迁移

直接导出的Postgres备份文件无法直接导入MariaDB,需按以下步骤处理兼容:

  • 1.1 在原Postgres数据库执行纯数据导出,仅导出数据不导出结构,导出命令:
    pg_dump -d 你的Moodle数据库名 -U 数据库用户名 --no-owner --no-privileges --data-only --inserts > moodle_pg_data.sql
  • 1.2 在Windows XAMPP的MariaDB中新建空数据库,字符集设置为utf8mb4,排序规则为utf8mb4_unicode_ci,完全匹配Moodle官方要求的数据库配置
  • 1.3 下载和原Moodle版本完全一致的官方安装包,提取其中MariaDB版本的初始数据库结构SQL文件,导入到新建的空MariaDB数据库中,完成适配MariaDB的表结构初始化
  • 1.4 对导出的Postgres数据SQL文件做批量语法兼容处理:
    • 替换所有Postgres布尔值t/f为MariaDB支持的1/0
    • 删除所有Postgres专属语法、序列引用语句、修正转义符差异
  • 1.5 处理完成后将数据SQL导入到已初始化表结构的MariaDB数据库中,导入完成后执行校验命令确认结构无差异:
    php admin/cli/check_database_schema.php

步骤2:Moodle文件迁移与Windows环境适配

  • 2.1 将原Moodle站点根目录、moodledata目录全量复制到Windows XAMPP的web服务目录下,注意moodledata目录需放在web公开访问目录之外,符合Moodle安全要求
  • 2.2 编辑Moodle根目录下的config.php文件,修改以下核心配置:
    • $CFG->dbtype 从pgsql修改为mariadb
    • $CFG->dbhost/$CFG->dbname/$CFG->dbuser/$CFG->dbpass修改为新MariaDB数据库的对应配置
    • $CFG->wwwroot修改为新站点的访问地址
    • $CFG->dirroot/$CFG->dataroot修改为Windows环境下的绝对路径,路径分隔符推荐使用/避免转义问题
  • 2.3 为moodledata目录赋予Apache运行用户的读写权限

步骤3:迁移后校验

  • 访问新站点地址,按照页面提示完成自动数据库升级操作
  • 登录管理员后台,校验用户数据、课程内容、上传资源、已安装插件的功能是否全部正常
  • 确认所有功能无异常后,关闭维护模式:
    php admin/cli/maintenance.php --disable

内容的提问来源于stack exchange,提问作者Mak143 Bas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:36:06