ERPNext Upgrade Guide: Moving Between Major Versions Safely
How to upgrade ERPNext between major versions: inventory apps, handle features moved to separate apps, test on staging and run the production upgrade.
ERP platform · ERPNext
Overview
That separation is what keeps a customised ERPNext upgradeable. Our developers work only in custom apps, keep everything in Git, and write code that extends standard behaviour rather than copying and patching it.
ERP Builders is an independent ERPNext services company and is not affiliated with or endorsed by Frappe Technologies. “ERPNext” and “Frappe” are trademarks of Frappe Technologies Pvt. Ltd.
01
Development is justified when the logic is too complex, too performance-sensitive or too important to live in scripts typed into the browser.
New document types with naming, permissions, validation, submission and cancellation logic that behave like native ERPNext documents.
Document event hooks, whitelisted methods and class overrides that change standard behaviour in a controlled, reviewable way.
Script and query reports, number cards and dashboard charts built for the questions your managers ask every week.
Customer and supplier portals, web forms and documented REST endpoints for partners, mobile apps and other systems.
02
Each client gets a custom app in its own repository. Configuration that belongs with the code — custom fields, property setters, print formats, workflows, roles — is exported as fixtures so a fresh site can be rebuilt from Git.
Long-running work runs in background jobs on the queue rather than in the request. Code is reviewed, tested on a staging site with production-like data, and deployed through a repeatable process. Upgrades are planned against the custom app, not discovered in production.
Process
A short written spec with the business rule, edge cases and acceptance criteria agreed before code is written.
Development in a custom app with tests, code review and demonstration on staging.
Deployment through bench or Frappe Cloud with migration, a rollback plan and release notes.
Related
Insights
How to upgrade ERPNext between major versions: inventory apps, handle features moved to separate apps, test on staging and run the production upgrade.
How ERPNext manufacturing works: BOMs, workstations, production plans, work orders, job cards, backflushing, subcontracting, quality and costing.
How to move from Tally to ERPNext: mapping ledgers, GST details, stock items and godowns, loading opening balances, picking a cutover date and reconciling.
FAQ
Server and client scripts are fine for small, low-risk rules. Anything with significant logic, performance requirements or integrations belongs in a custom app, where it is version-controlled, tested and reviewable.
Custom apps need to be checked and sometimes adjusted for each major version. Apps that use hooks and extend standard classes migrate with modest effort; apps that copy or patch core code are what make upgrades painful.
Yes. Frappe Cloud supports custom apps deployed from a Git repository on private benches. We set up the repository and deployment so updates are routine.
Comparisons
Next step
Describe the requirement and we will tell you whether it needs configuration, a script or a custom app.