新闻详情

新闻详情

首页 / 资讯中心 / 详情

iDempiere数据库升级指南:从migration脚本看跨版本平滑迁移全流程

发布时间:2026/9/8 7:19:18来源:尧图网络
iDempiere数据库升级指南:从migration脚本看跨版本平滑迁移全流程
iDempiere数据库升级指南从migration脚本看跨版本平滑迁移全流程【免费下载链接】idempiereiDempiere. Community Powered Enterprise. Full Open Source Business Suite ERP/CRM/MFG/SCM/POS项目地址: https://gitcode.com/gh_mirrors/id/idempiereiDempiere 数据库升级并不复杂——它的核心是一套按版本归档的 migration SQL 脚本和一条同步命令。iDempiere 是一套完整的开源企业级业务套件ERP/CRM/MFG/SCM/POS元数据全部存放在数据库中因此版本升级的本质就是按时间顺序补齐数据库脚本。本文将带你完整走一遍 iDempiere 数据库升级流程从脚本目录结构讲起到一键同步与生产监控方案帮助你安全地完成跨版本平滑迁移。为什么 iDempiere 的升级是补脚本iDempiere 采用元数据驱动架构窗口、表格、字段、流程等 UI 与业务定义都以数据形式存放在AD_Window、AD_Table、AD_Column等字典表中。所以升级应用代码的同时必须同步升级数据库里的元数据和业务表结构官方为每个大版本提供成对的postgresql/与oracle/脚本升级 把尚未执行的脚本按时间戳顺序补跑一遍每个脚本执行后都会调用register_migration_script()函数把文件名登记到AD_MigrationScript表系统借此判断哪些脚本还没跑。一个典型的脚本开头migration/iD14/postgresql/202511201738_IDEMPIERE-6733.sql就是先登记、再改表、再同步字典数据三步一体SELECT register_migration_script(202511201738_IDEMPIERE-6733.sql) FROM dual; ALTER TABLE T_ReportStatement ADD COLUMN Account_ID NUMERIC(10) DEFAULT 0; INSERT INTO AD_Column (...) VALUES (...);migration 目录结构一眼看懂版本迁移路线所有迁移脚本集中在仓库根目录的migration/下每个子文件夹对应一个历史版本按字母序即升级顺序版本目录说明migration/i4.1~migration/iD92008–2021 年间的历史版本脚本4.1 起步migration/iD10~migration/iD14近年主版本如 iD14 是最新的 31 个脚本local_sql/你自建的安装级定制脚本见下文processes_post_migration/所有脚本跑完后统一执行的收尾脚本zip_2pack/存放自建的 2Pack 元数据包 zip 文件每个版本目录内部固定分postgresql/和oracle/两个子目录脚本命名约定为yyyymmddHHMM_信息描述.sql时间戳前缀 说明例如202511201738_IDEMPIERE-6733.sql时间戳前缀决定了执行顺序——系统按文件名排序依次应用与所在文件夹无关这正是平滑迁移的关键设计。一键升级用 SyncDB 同步数据库开发环境RUN_SyncDBDev.sh如果你在 Eclipse 中用 install 应用初始化过数据库仓库根目录的 RUN_SyncDBDev.sh 会直接从idempiere.properties读取连接信息并执行同步bash RUN_SyncDBDev.sh # 或指定属性文件和迁移目录 bash RUN_SyncDBDev.sh adempiere.properties migration/iD14生产/服务器环境utils.unix 工具集服务器安装版使用org.adempiere.server-feature/utils.unix/下的工具链RUN_SyncDB.sh→ 按数据库类型调用postgresql/SyncDB.sh或oracle/SyncDB.sh。核心机制非常直白见utils.unix/postgresql/SyncDB.sh查询AD_MigrationScript表得到已执行脚本清单扫描migration/目录下当前数据库类型的.sql文件得到全部脚本清单两者求差集得到待执行脚本按文件名排序逐个用psql执行任一脚本输出中检测到ERROR:/FATAL:等错误标志时立即停止并把每个脚本的完整输出留存在/tmp/SyncDB_out_*/供排查全部成功后追加执行processes_post_migration/里的收尾脚本。已同步时会看到友好提示Database is already in sync - no scripts pending to apply重复执行完全安全幂等。生产级升级MonitoredSyncDB 监控模式正式环境推荐用RUN_MonitoredSyncDB.sh底层是utils.unix/postgresql/MonitoredSyncDB.sh它比普通同步多了三样保障错误留痕脚本报错时自动把AD_MigrationScript中该记录标记为ERError并保存脚本输出方便定位修复包机制.fix供应商/社区可发布修复脚本命名与原脚本一致但后缀改为.001.fix、.002.fix……放入同一目录即可程序会自动查找并应用修复无需手工干预邮件告警若AD_System表配置了 SupportEMail 且系统有 sendmail出错时自动把错误详情发邮件给支持方。官方建议的流程是先在测试/预发环境跑一遍→ 集成修复脚本 → 再在生产环境执行届时修复会被自动带上。加入自己的定制脚本local_sql 规范如果升级时还需要执行安装级定制改动比如自建字段、视图把脚本放进migration/local_sql/规则见该目录的 README.txt目录内同样分postgresql/和oracle/命名沿用yyyymmddHHMM_说明.sql约定它在所有版本目录i4.1 … iD14之后、收尾脚本之前被执行。类似地自建的元数据包可放入migration/zip_2pack/命名为yyyymmddHHMM_客户端代码_说明.zip由org.adempiere.plugin.utils插件在服务器启动后自动应用。升级前检查清单与常见坑 步骤要点1️⃣ 备份数据库升级前执行一次完整备份utils 提供RUN_DBExport.sh/RUN_DBRestore.sh工具2️⃣ 测试环境先行用 MonitoredSyncDB 先跑通全量迁移3️⃣ 版本按序补齐从 i4.1 一路到 iD14脚本必须按时间戳顺序执行不要手工乱序补跑4️⃣ 注意数据库方言postgresql 与 oracle 脚本不可混用脚本按AD_Client/方言独立维护5️⃣ 检查错误输出失败时查看/tmp/SyncDB_out_*/下的 .out 日志按提示手工修复后重跑即可续传6️⃣ 收尾脚本别漏processes_post_migration只在有脚本被应用时才执行手工跳步容易遗漏 小贴士连接信息模板可参考仓库根目录的adempiere-local-template.properties把Connection一行的数据库主机、端口、库名、账号改好即可复用给同步脚本。小结iDempiere 的数据库升级可以归纳为三句话脚本按版本目录 时间戳命名归档天然形成可追溯的迁移流水线SyncDB 通过AD_MigrationScript表做增量对比一键补跑、幂等安全MonitoredSyncDB .fix 修复包 邮件告警为生产环境提供完整的出错兜底方案。掌握这套机制后无论是从 i9 跨到 iD14还是日常跟进小版本补丁你都能在测试环境验证后一条命令完成生产数据库的平滑迁移。【免费下载链接】idempiereiDempiere. Community Powered Enterprise. Full Open Source Business Suite ERP/CRM/MFG/SCM/POS项目地址: https://gitcode.com/gh_mirrors/id/idempiere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Ubuntu 20.04 x86_64源码编译Qt 5.15.2完整指南 2026/9/8 7:17:14

Ubuntu 20.04 x86_64源码编译Qt 5.15.2完整指南

简介:面向需要在 Ubuntu 20.04 x86 环境搭建 Qt 5.15.2 定制编译链的开发者,这份源码包提供了完整的 Qt 5.15.2 头文件集合。包内共 2000 个 h 文件,压缩后约 50.14MB,涵盖 QtCore、QtGui、QtWidgets、QtNetwork 等模块的公共接口…

阅读更多 →
RBAC 只能管按钮,真正难的是数据权限:从 ShiyuAdmin 拆解 Data Scope 设计 2026/9/8 7:17:14

RBAC 只能管按钮,真正难的是数据权限:从 ShiyuAdmin 拆解 Data Scope 设计

很多后台管理系统做到 RBAC,就觉得权限系统结束了。 比如给用户分配一个角色: 张三↓ 部门管理员↓ system:user:list于是张三可以进入: 系统管理 → 用户管理接口也能正常访问: GET /api/v1/system/users看起来权限没问题。 但真…

阅读更多 →
哥伦比娅来电之谜:号码解析与Python骚扰拦截实战 2026/9/8 7:17:14

哥伦比娅来电之谜:号码解析与Python骚扰拦截实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
多目标位置预测系统实战:基于GPS与导航地图的轨迹推算方案 2026/9/8 7:17:14

多目标位置预测系统实战:基于GPS与导航地图的轨迹推算方案

简介:面向GPS导航地图中多目标位置预测问题,资源集论文成果与MATLAB实现于一体,适用于智能交通、物流配送及路径规划等方向的研究者。包内共8个文件,其中2篇文档详细阐述算法原理与实验分析,5个.m源码文件提供卡尔曼滤…

阅读更多 →
Java毕业设计实战:Spring Boot+微信小程序实现温室监控系统全流程搭建 2026/9/8 7:17:14

Java毕业设计实战:Spring Boot+微信小程序实现温室监控系统全流程搭建

最近被问得最多的 Java 毕业设计题目里,温室监控系统绝对排得上号。乍一听很“传统”,无非是温度湿度、传感器数据、曲线图,怎么做到有工程感,怎么在答辩时讲出东西来,才是很多同学真正发愁的地方。做这类项目&#xf…

阅读更多 →
LTspice仿真分析RC吸收阻尼电路,有效抑制开关尖峰与振铃 2026/9/8 7:14:14

LTspice仿真分析RC吸收阻尼电路,有效抑制开关尖峰与振铃

做电源和电机驱动的朋友,应该都见过这个画面:示波器的探头刚搭上开关管的漏极,屏幕上就弹起一个比母线电压高出一大截的尖峰,背后还拖着一条衰减振铃。这个尖峰不处理,轻则让开关管过压击穿,重则干扰控制板…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞