Migrating an enterprise portal like Liferay DXP is a major milestone. Moving from Liferay 7.2 to the modern 7.4 (2026 Q1) release brings massive performance improvements, fresh features, and better security. However, bridging that gap requires a meticulous strategy.
If you are planning this upgrade, here is your definitive, step-by-step technical playbook to take your local environment, database, and codebase from 7.2 to 7.4.
Phase 1: Environment & Local 7.2 Baseline Setup
Before jumping into the new version, you must recreate a stable, working baseline of your Liferay 7.2 environment locally.
1. Upgrade the Core Runtime
Liferay 7.4 (2026 Q1) demands modern Java infrastructure.
- Task: Upgrade your Java development kit from JDK 8 to JDK 21.
- Why? JDK 21 provides the long-term support (LTS) foundation required by modern Liferay bundles.
2. Restore the Local 7.2 Environment
To ensure a reliable migration, test the upgrade against a real data snapshot.
- Database Dump: Download a fresh database dump from your Development environment.
- Import Data: Restore this dump into your local MySQL instance.
- Data Folder: Unzip and sync the data/ folder (which holds your document library and file store) from your 7.2 backup.
- Initialize 7.2 Workspace: Download and unzip your matching Liferay 7.2.0 bundle, connect it to your imported database, and boot it up once to ensure everything resolves cleanly.
Phase 2: Preparing the Target 7.4 Environment
With the baseline established, it’s time to build the target framework.
- Download the Target Bundle: Obtain the official Liferay DXP 7.4 2026Q1 bundle.
- Unzip the Bundle: Extract it to your desired local directory (this will be your new $LIFERAY_HOME).
- Initial Data Sync: Copy your existing data/ directory from the old 7.2 Tomcat installation directly into the new 7.4 Tomcat directory.
Phase 3: Database Upgrade (MySQL 5.7 to 8.*)
Liferay 7.4 thrives on MySQL 8.*. Upgrading your database topology safely requires a strict sequence:
Step 1: Pre-Upgrade Compatibility Checks
Before moving any data, use the MySQL Shell utility to ensure your 5.7 database won’t conflict with 8.* syntax or features. Run the following command:
Bash
mysqlsh –user=root –password –host=localhost –util checkForServerUpgrade –targetVersion=8.0.35 –outputFormat=TEXT
Step 2: Backup and Migrate
- Create a Full Data Backup: Export a comprehensive .sql backup of your checked 5.7 database.
- Spin up MySQL 8.*: Create a brand new MySQL 8.* instance (or Docker container).
- Crucial Configuration: Ensure lower_case_table_names=1 is configured in your my.cnf or set as a flag when starting your MySQL 8.0 container.
⚠️ Warning: Failing to set lower_case_table_names=1 before database initialization can cause irreversible Liferay database schema mismatches on certain operating systems. - Import Data: Use DBeaver (or your preferred database client) to import your backup SQL directly into the new MySQL 8.* instance.
Phase 4: Executing the DB Upgrade Client
Instead of upgrading on the fly, use Liferay’s dedicated DB Upgrade Client tool for a controlled, visible schema migration.
1. Configure the Upgrade Properties
Navigate to: \liferay-dxp\tools\portal-tools-db-upgrade-client\ Create or edit the portal-upgrade-ext.properties file to point directly to your new MySQL 8.* instance:
Properties
liferay.home=../../
##
## MySQL Configuration
##
jdbc.default.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost:3306/lportal?useSSL=false&characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&serverTimezone=GMT&useFastDateParsing=false&useUnicode=true
jdbc.default.username=****
jdbc.default.password=****
2. Run the Client
Open your terminal, navigate to the tool folder, and execute the upgrade script:
- Windows: db_upgrade_client.bat
- Mac/Linux: ./db_upgrade_client.sh
Monitor the console logs closely for any schema errors or breaking changes.


