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

本地DotCMS 2.5.1升级至Docker化23.01的过渡方案咨询

DotCMS 2.5.1(本地Oracle)升级至23.01(Docker PostgreSQL)最优方案

一、本地2.5.1迁移至21.06 Docker(Oracle过渡)

因为21.06是最后支持Oracle的版本且仅提供Docker镜像,直接用镜像完成过渡升级:

  • 备份本地全量资源
    1. 导出Oracle数据库:用expdp命令全量导出所有schema、数据、存储过程,示例命令:
      expdp your-dotcms-user/your-pass@your-oracle-sid schemas=dotcms dumpfile=dotcms_251_backup.dmp logfile=expdp_log.log
      
    2. 备份本地DotCMS的assets目录、dotserver/config下的自定义配置文件(如dotmarketing-config.properties),以及所有自定义主题、插件文件。
  • 启动21.06 Docker容器并关联Oracle
    1. 拉取镜像:docker pull dotcms/dotcms:21.06
    2. 启动容器时挂载本地备份的assets目录,通过环境变量配置Oracle连接(和本地2.5.1的数据库参数一致),示例启动命令:
      docker run -d \
        -p 8080:8080 \
        -v /path/to/your/local/assets:/data/assets \
        -e DB_TYPE=ORACLE \
        -e DB_HOST=your-oracle-ip \
        -e DB_PORT=1521 \
        -e DB_NAME=your-oracle-sid \
        -e DB_USERNAME=dotcms-user \
        -e DB_PASSWORD=dotcms-pass \
        dotcms/dotcms:21.06
      
  • 完成升级与验证
    1. 将之前导出的dotcms_251_backup.dmp导入到Oracle数据库,确保容器能正常访问该库。
    2. 查看容器日志跟踪升级进度:docker logs -f your-container-id,等待自动升级脚本执行完成。
    3. 登录21.06后台,检查内容、资产、自定义配置是否正常,测试自定义主题和插件的运行状态。
  • 同步个性化设置
    将本地备份的dotserver/config下的自定义配置文件复制到容器对应路径,或直接挂载本地配置目录到容器的/data/dotserver/config;自定义插件需重新编译适配21.06版本后,通过后台上传安装。

二、21.06 Docker(Oracle)迁移至23.01 Docker(PostgreSQL)

  • 备份21.06数据
    1. 再次用expdp导出升级后的21.06 Oracle数据库。
    2. 备份容器内的assets目录和配置文件。
  • 准备PostgreSQL环境
    1. 启动PostgreSQL容器:
      docker run -d \
        -p 5432:5432 \
        -e POSTGRES_USER=dotcms \
        -e POSTGRES_PASSWORD=your-postgres-pass \
        -e POSTGRES_DB=dotcms \
        postgres:14
      
    2. 进入PostgreSQL容器,创建必要扩展:
      CREATE EXTENSION IF NOT EXISTS hstore;
      CREATE EXTENSION IF NOT EXISTS pg_trgm;
      
  • 数据迁移至PostgreSQL
    使用Ora2Pg工具将Oracle导出的转换为PostgreSQL兼容的SQL脚本,重点处理Oracle特有数据类型(如CLOB转TEXT、DATE转TIMESTAMP),然后将脚本导入PostgreSQL数据库。
  • 启动23.01容器并完成升级
    1. 拉取镜像:docker pull dotcms/dotcms:23.01
    2. 启动容器时挂载21.06的assets目录,配置PostgreSQL连接,示例命令:
      docker run -d \
        -p 8080:8080 \
        -v /path/to/2106/assets:/data/assets \
        -e DB_TYPE=POSTGRESQL \
        -e DB_HOST=your-postgres-ip \
        -e DB_PORT=5432 \
        -e DB_NAME=dotcms \
        -e DB_USERNAME=dotcms \
        -e DB_PASSWORD=your-postgres-pass \
        dotcms/dotcms:23.01
      
    3. 查看容器日志等待自动升级完成,登录后台验证所有内容、配置、个性化设置是否正常。

最优最简方案总结

  • 跳过本地安装21.06的步骤,直接用Docker镜像挂载本地资源、复用原有Oracle数据库完成过渡升级,减少环境搭建成本。
  • 优先依赖DotCMS自带的自动升级脚本处理数据结构变更,避免手动修改数据库表结构,降低出错风险。
  • 核心注意点:自定义插件的版本适配(2.5.1→21.06、21.06→23.01需分别调整)、Oracle到PostgreSQL的数据类型转换、资产目录的完整挂载。

内容的提问来源于stack exchange,提问作者Giov Lops

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:07:17