Syncing Staging environment with Production

I have setup two environments.

  1. Staging
  2. Production.

I usually make changes on staging environment before doing the same in production. The issue is I have is how to transfer the changes to production environment from staging environment without redoing the the same work.

How can I make the staging environment sync with production. Anyone who has ever done the same before?

I create custom app for each project, and issue git push and pull.

1 Like

@TurkerTunali Yes this works well. For mycase I’m interested in making customizations to my site. For example changing the logos, changing the wordings, changing colors, creating new and editing existing workflows, doctypes. I’m not building a new project/app but I want to customize the existing apps like CRM and HRMS and add new workflows, change wordings, icons add new doctypes etc.

My approach is:

I do the customization on staging. If it works well, then I redo the same in production.

The downside of this approach is if I have 5 instances running on production, I have to redo the same in all the instances.

Is there a better approach which is efficient in syncing changes between staging and production? Or should I push all the frappe bench directory to github.

@rabitechs, Do not directly change anything in Frappe or ERPNext. Change in your local server through customization and move the change record to your custom app. Then you push your changes to your custom app repository. Now pull your last updated changes to your staging server and production server. You don’t have to do same work twice.

For more automation in deployment, you can implement CI/CD.

Thanks @Lone_Wolf.

Any links to guides on how to do the customization on the local server and move all changes to my custom app?

@rabitechs Use Fixtures fo this. Google it for more. Here is a link that help you to understand:

https://codewithkarani.com/2021/09/06/fixtures-and-custom-fields-in-and-frappe-erpnext/