{"id":1001,"date":"2022-12-23T14:40:42","date_gmt":"2022-12-23T09:10:42","guid":{"rendered":"https:\/\/www.techandtrain.com\/blog\/?p=1001"},"modified":"2025-10-22T14:53:53","modified_gmt":"2025-10-22T09:23:53","slug":"liferay-upgrade-learnings-part-1","status":"publish","type":"post","link":"https:\/\/www.techandtrain.com\/blog\/2022\/12\/liferay-upgrade-learnings-part-1\/","title":{"rendered":"Liferay upgrade learnings &#8211; Part 1"},"content":{"rendered":"\n<p>Some learnings below from various Liferay upgrades that I have been part of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Upgrades need us to plan various dry runs in advance on non-production environment<\/li>\n\n\n\n<li>Divide your upgrade between core \/ database and non-core upgrade<\/li>\n\n\n\n<li>Core includes Liferay engine, configurations and database<\/li>\n\n\n\n<li>Non-core includes themes, custom code, integrations and such<\/li>\n\n\n\n<li>Understand how to use database upgrade tool for core upgrade<\/li>\n\n\n\n<li>Logging of upgrade should be at much more verbose level than normal<\/li>\n\n\n\n<li>You can upgrade with document library or without it using portal-ext.properties configurations<\/li>\n\n\n\n<li>Upgrades between DXP from 7.x to 7.x are easier whereas upgrades from 6.x to 7.x need more planning<\/li>\n\n\n\n<li>For database upgrade tool, you have an option of 3 property files or you can use command prompt to enter required details<\/li>\n\n\n\n<li>Make sure you are at the latest version of whichever 7.x you are upgrading to<\/li>\n\n\n\n<li>Bad and corrupt data are perpetual problems which need to be analyzed properly before upgrade<\/li>\n\n\n\n<li>Use groovy to fix bad data not SQL<\/li>\n\n\n\n<li>Consider analysis and compliance from Liferay compatibility matrix, Liferay whitepapers on cloud, security, upgrade &amp; scaling before planning your upgrade<\/li>\n\n\n\n<li>Create a template document for upgrade with all major areas pre-covered in analysis via the whitepapers on Liferay.com<\/li>\n\n\n\n<li>Understand the breaking changes with every major version release<\/li>\n\n\n\n<li>Learn to use the upgrade planner for code upgrade<\/li>\n\n\n\n<li>Docker containers are available and should be considered<\/li>\n\n\n\n<li>Consider headless, clustering, cloud, advanced file store, CMIS repository options right at the analysis phase of Liferay upgrade<\/li>\n\n\n\n<li>For your data storage requirements in future as per scaling &#8211; understand and analyze the load to confirm to the right choices of infrastructure like Cloud, SAN \/ NAS and so on<\/li>\n\n\n\n<li>Learn to use the basic Linux commands (if you are using Linux) like top, free, tail, ps, grep, liferay bin commands, sudo, vim, thread dumps and such to monitor \/ manage the upgrade well<\/li>\n\n\n\n<li>Look at top thread dump analyzers like: <a href=\"https:\/\/fastthread.io\/\" rel=\"noreferrer noopener\" target=\"_blank\">Smart Java thread dump analyzer &#8211; thread dump analysis in seconds (fastthread.io)<\/a><\/li>\n\n\n\n<li>Consider learning basics of operating system \/ network you are using, JVM &amp; database tuning \/ optimization for threads, core allocations, monitoring and using Eclipse IDE to analyze threads, heap, etc.<\/li>\n\n\n\n<li>Keep reference guide for system.properties and portal-ext.properties handy during upgrade of core part<\/li>\n\n\n\n<li>Keep headless, GraphQL, Liferay \/ Java API details handy during code upgrade<\/li>\n\n\n\n<li>Explore 7.4 DXP features if you are upgrading to this version: <a href=\"https:\/\/www.liferay.com\/products\/dxp\/new\" rel=\"noreferrer noopener\" target=\"_blank\">Liferay DXP 7.4 New Features<\/a><\/li>\n\n\n\n<li>Refer help center articles and open documentation both, they have lot of good, useful content<\/li>\n\n\n\n<li>Reference: <a href=\"https:\/\/learn.liferay.com\/dxp\/latest\/en\/installation-and-upgrades\/upgrading-liferay\/upgrade-basics.html\" rel=\"noreferrer noopener\" target=\"_blank\">Upgrade Basics \u2014 Liferay Learn<\/a><\/li>\n<\/ul>\n\n\n\n<p>Email me: Neil@HarwaniSystems.in<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some learnings below from various Liferay upgrades that I have been part of: Email me: Neil@HarwaniSystems.in<\/p>\n","protected":false},"author":2,"featured_media":1002,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[192],"tags":[245,237,200,246,244],"class_list":["post-1001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-liferay","tag-digital-experience-platform","tag-dxp","tag-liferay","tag-liferay-upgrade","tag-liferaydxp"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1280%2C1196&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7do02-g9","jetpack-related-posts":[{"id":965,"url":"https:\/\/www.techandtrain.com\/blog\/2022\/10\/liferay-best-practices-part-1\/","url_meta":{"origin":1001,"position":0},"title":"Liferay best practices &#8211; Part 1","author":"Neil Harwani","date":"October 11, 2022","format":false,"excerpt":"Developers and managers both struggle at times to pre-plan usage of best practices in projects causing many problems which are best avoided. Providing below some learnings & best practices on using and working with Liferay \u2013 Part 1. Don\u2019t work directly on the Liferay database. Use the groovy script console\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1163,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/11\/what-are-some-of-the-best-practices-for-liferay-using-three-separate-gpts\/","url_meta":{"origin":1001,"position":1},"title":"What are some of the best practices for Liferay? &#8211; Using three separate GPTs","author":"Neil Harwani","date":"November 20, 2023","format":false,"excerpt":"Generated using my GPT -\u00a0Liferay Guide - Via official sources of Liferay:\u00a0https:\/\/chat.openai.com\/g\/g-4G5XuBdpL-liferay-guide-via-official-sources-of-liferay Adhering to best practices in Liferay ensures that you leverage the platform effectively for enterprise solutions. Here are some key best practices to consider: 1.\u00a0Modular Development: Embrace Liferay\u2019s modular development approach using OSGi. Develop customizations in modules, rather\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Fantasy-Portal.jpg?fit=1200%2C909&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1084,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/07\/liferay-clustering-part-1\/","url_meta":{"origin":1001,"position":2},"title":"Liferay clustering &#8211; Part 1","author":"Neil Harwani","date":"July 2, 2023","format":false,"excerpt":"Notes on Liferay clustering: Clustering for High Availability - Liferay Learn\u00a0- Main page for clustering Here is what\u2019s required to create an effectively functional DXP cluster: 1. Liferay DXP\u00a0installed\u00a0on separate application server nodes. 2. A\u00a0database or database cluster\u00a0that\u2019s accessible to all nodes 3. A\u00a0File Store\u00a0that\u2019s accessible to all nodes 4.\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1070,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/05\/how-to-take-knowledge-transfer-in-a-discussion-for-liferay-engagement-part-1\/","url_meta":{"origin":1001,"position":3},"title":"How to take knowledge transfer in a discussion for Liferay engagement &#8211; Part 1","author":"Neil Harwani","date":"May 17, 2023","format":false,"excerpt":"Here is a list of points which will help in taking a knowledge transfer for a Liferay engagement - Part 1: 1. Check which products of Liferay are in use: DXP, Commerce, Analytics and \/ or Cloud LXC 2. Take the list of osgi\/configs & osgi\/modules to get configurations of\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/05\/fantasy-g5314dd315_1920.jpg?fit=1200%2C910&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/05\/fantasy-g5314dd315_1920.jpg?fit=1200%2C910&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/05\/fantasy-g5314dd315_1920.jpg?fit=1200%2C910&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/05\/fantasy-g5314dd315_1920.jpg?fit=1200%2C910&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/05\/fantasy-g5314dd315_1920.jpg?fit=1200%2C910&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1018,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/01\/links-on-important-technical-concepts-of-liferay-part-1\/","url_meta":{"origin":1001,"position":4},"title":"Links on important technical concepts of Liferay &#8211; Part 1","author":"Neil Harwani","date":"January 25, 2023","format":false,"excerpt":"Here are some links on important technical concepts of Liferay - Part 1. Hope this is helpful to all using and learning Liferay. Clustering:\u00a0Liferay DXP Clustering \u2013 Liferay Help Center Upgrade:\u00a0Upgrade Basics \u2014 Liferay Learn LXC:\u00a0Liferay Experience Cloud \u2013 Liferay Help Center Search:\u00a0Search Overview \u2014 Liferay Learn Architecture:\u00a0Introduction to Architecture\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/01\/door-g5a9b513f9_1920.jpg?fit=1200%2C944&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/01\/door-g5a9b513f9_1920.jpg?fit=1200%2C944&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/01\/door-g5a9b513f9_1920.jpg?fit=1200%2C944&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/01\/door-g5a9b513f9_1920.jpg?fit=1200%2C944&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/01\/door-g5a9b513f9_1920.jpg?fit=1200%2C944&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":825,"url":"https:\/\/www.techandtrain.com\/blog\/2022\/02\/keywords-to-search-on-liferay-part-1\/","url_meta":{"origin":1001,"position":5},"title":"Keywords to search on Liferay &#8211; Part 1","author":"Neil Harwani","date":"February 19, 2022","format":false,"excerpt":"Searching these keywords on Liferay will keep you updated on what's happening in the ecosystem. Add \"Liferay\" in-front of these keywords & search the same. It's a mix of technical & functional \/ product feature topics. This is Part-1 of the series. Module loaderMVC portletLoggingUpgradePatch toolSearch filterHot fixesService packsSearch experiencesObjectsCommerceService\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/02\/Liferay.png?fit=594%2C209&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/02\/Liferay.png?fit=594%2C209&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/02\/Liferay.png?fit=594%2C209&ssl=1&resize=525%2C300 1.5x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/comments?post=1001"}],"version-history":[{"count":4,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1001\/revisions"}],"predecessor-version":[{"id":1007,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1001\/revisions\/1007"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media\/1002"}],"wp:attachment":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media?parent=1001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/categories?post=1001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/tags?post=1001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}