Introduction
In the ever-evolving world of Customer Relationship Management (CRM) software, staying current is essential. SugarCRM, a popular CRM platform, releases new versions every quarter for cloud-hosted instances and annually for on-premise instances, ensuring users benefit from the latest features, improvements, and bug fixes. In this blog, we’ll explain why upgrading your SugarCRM is important and outline best practices and steps to ensure a smooth transition between versions.
Why is SugarCRM Upgrade Required?
Support Policy Requirement
According to SugarCRM’s Support Policy, on-premise releases are only supported for 18 months from their General Availability (GA) date.
This means that staying current with upgrades is vital to ensure your CRM remains supported, secure, and functional.
Regular Updates
SugarCRM releases new versions regularly—every quarter for cloud-hosted instances and every year for on-premise instances. These updates are driven by continuous development and improvements.
By keeping your CRM updated, you’ll gain access to the latest tools and features that make your system more powerful and user-friendly.
Access to Enhancements
Every new release of SugarCRM brings important improvements that enhance system performance, add new features, and improve existing ones. These updates help make your CRM run more smoothly and provide new tools that can boost your team’s productivity.
By upgrading to the latest version, you ensure that your team benefits from these enhancements, leading to more efficient workflows and better results.
Bug and Issue Fixes
Upgrading your SugarCRM regularly is important because each new version fixes known issues and bugs found in earlier versions. These updates help prevent issues that could cause trouble with your CRM, such as errors or crashes.
By keeping your CRM updated, you reduce the chances of facing these problems, which helps keep your system running smoothly and avoids disruptions to your work.
Best Practices to Follow While Upgrading
1. Back Up your Codebase and Database
Before starting an upgrade, always make a copy of your codebase and database. This way, if something goes wrong during the upgrade, you have your instance backup.
2. Test in a Sandbox Environment
First, upgrade your sandbox environment, which is a separate test instance of your system. Perform thorough testing in this environment to identify and fix any issues. Only after ensuring that the upgrade works smoothly in the sandbox should you plan to upgrade your live system. Make sure to plan for downtime in advance to minimize any disruption to your daily operations during the actual production upgrade. This approach helps prevent any problems from impacting your live system and ensures a smoother transition.
3. Clean Up your System
Remove any unnecessary files or scripts from your SugarCRM directory before upgrading. Also, turn off any schedulers and email settings temporarily to avoid problems during the upgrade. Never upgrade the system by keeping the schedulers on.
4. Follow SugarCRM’s Installation Guide
Follow the installation and upgrade guide provided by SugarCRM support to make sure you have all prerequisites setup for the new version and required things for upgrade.
5. Database Prune Scheduler
Before upgrading, run the database prune scheduler to remove soft-deleted records. This will clean up unnecessary data from the database, which helps reduce its size and speeds up the upgrade process.
6. Avoid Custom Code in Core Files
Verify if any custom code has been added directly to the core files of SugarCRM. Custom code in these files will be removed during an upgrade because SugarCRM overwrites core files as part of the upgrade process. This means that any customizations made without using the designated custom directories will be lost, potentially causing functionality issues. To avoid this, use Sugar Logic functions or other supported methods for customizations as recommended by SugarCRM.
7. Use SugarCRM Standards
When writing custom code, such as for scheduled jobs, logic hooks, entry points, APIs, or extending JavaScript files, always follow SugarCRM’s coding guidelines. Adhering to these standards helps ensure that your customizations integrate smoothly with SugarCRM and reduces the risk of issues during upgrades. Using the recommended practices for coding and configuration will help maintain system stability and functionality.
8. Efficient Database Management
Avoid creating extra tables in your database that aren’t needed. Regularly clean up tables like Activities and Activities_users to keep your database running smoothly.
9. Proper Indexing
Ensure proper indexing in your database, avoiding multiple indexing on the same fields to prevent upgrade failures.
10. Testing Tools
Utilize testing tools like Postman for API testing, Apache JMeter for performance load testing, Jasmine for JavaScript unit testing, and PHPUnit for PHP unit testing.
11. End to End Testing
After the upgrade, conduct end-to-end testing for all customizations and integrations. It’s important to test both admin and regular user scenarios separately to ensure that the performance and functionality are not negatively impacted for any user type.
This thorough testing will help identify and resolve any issues before they affect your live system.
12. Performance Optimization
Fine-tune performance settings in the config file and config override file after upgrading for an improved system performance.
Contact us for any CRM review or implementation needs!
Steps to Follow While Upgrading
1. Check Prerequisites
Before upgrading, ensure your system meets the requirements for the new version of SugarCRM. This involves verifying that the operating system and server meet the necessary specifications, checking that all required software versions are installed, and confirming that any prerequisites outlined by SugarCRM are fulfilled.
Properly preparing your environment will help ensure a smooth upgrade process.
2. Server OS Considerations
Since SugarCRM is a LAMP stack-based application, it is highly recommended to use a Linux operating system with Apache2, MySQL, and PHP. This stack provides the most compatible and stable environment for SugarCRM, ensuring optimal performance and reliability. Properly configuring directory and file ownership to match the web server user account will also help prevent permission issues and enhance system security.
3. Install Prerequisites
Before upgrading, ensure that all required prerequisites are in place on your server. This includes verifying that your operating system, Apache2 web server, and Elasticsearch (if needed) meet the necessary version requirements. Install the supported PHP version along with required PHP modules, and make sure your MySQL database server is properly configured and set up as per the new version. Meeting these requirements will help ensure a smooth and successful upgrade.
4. Configure PHP Settings
Adjust the php.ini settings as recommended by SugarCRM, including increasing memory limits and max execution time to ensure optimal performance. Make sure to restart your web server to apply these changes.
5. Download Upgrade Packages
Download the necessary upgrade packages from store.sugarcrm.com if you are a SugarCRM partner. If you are not a partner, you can request the packages from the SugarCRM support team by opening a support ticket.
Make sure you are aware of the correct upgrade path for your system, as some upgrades require a series of steps to move from one version to another. Review the upgrade path carefully to ensure you follow the correct sequence for a smooth upgrade process.
6. Windows-Specific Configurations:
On Windows, make sure the curl library has an updated certificate to handle secure connections. Enable the fileinfo.dll extension to support file handling functions, and install the URL Rewrite module to ensure compatibility with the web.config file for proper URL routing. These configurations are crucial for ensuring SugarCRM runs correctly and securely on a Windows server.
7. Fast CGI Settings for Windows
Adjust FastCGI settings as per SugarCRM’s recommendations to optimize performance and ensure smooth operation. This helps in managing resources effectively and improving the responsiveness of the application.
8. Perform the Upgrade
After setting up prerequisites, execute the upgrade from your current version to the new one. You can upgrade your system either using the upgrade wizard or silent upgrade as mentioned here. Follow the SugarCRM’s upgrade instructions carefully to verify that the upgrade completes successfully.
9. Permissions and Ownership
Set proper permissions and ownership for the SugarCRM root directory, following platform-specific guidelines as mentioned here.
10. Quick Repair and Rebuild
After the upgrade, verify folder-level permissions and run the Quick Repair and Rebuild process to complete the setup.
This ensures that all files and directories have the correct permissions and that the system is properly configured and functioning.
11. Restart Servers
Restart both the application server and the database server after the upgrade. This helps to apply any changes, clear temporary caches, and ensure that all components are functioning correctly with the new version.
12. Troubleshooting
If issues arise after the upgrade or functionality isn’t working as expected, check the logs for detailed information. Review the PHP error log, SugarCRM log, and server error log to identify and debug problems.
Some features might not be supported in the new version, requiring adjustments to your code to ensure compatibility.
Conclusion
Upgrading your SugarCRM is more than just keeping up with the latest version; it’s about ensuring your CRM system operates at its best, stays secure, and provides top-notch tools for managing customer relationships. At BHEA, we’ve upgraded SugarCRM for numerous customers, solving various pain points with over two decades of expertise.
We can help you upgrade to the latest version and provide training on how to effectively use the new features. Don’t let your CRM fall behind—make upgrading a priority and benefit from a more efficient and effective CRM solution. Contact us today to get started!