Issue
- I upgraded from 2024.q4.7 to 2025.q1.4-lts. After the upgrade, we encountered issues with Data Sets. In 2024.q4.7 I was using datasets as beta but as in 2025.q1.4 its released. I have enabled Root Objects and Datasets both release flags but the data Sets are not available on the page and returns an error.
Environment
- Liferay Quarterly Release 2025.q1.4-lts
Resolution
- The issue occurs because the Dataset feature was used while it was a Beta feature (was still under development), and after upgrading to the release where the feature was officially released, the data has changed.
- To resolve the case, please perform the following:
Note: Please test the solution first in a lower environment and make a backup of your database before testing.
1. Deactivate Feature Flags
- LPS-164563 – Data Set Manager
- LPD-34594 – Root Object Definitions (dependency of the above)
To ensure LPS-164563
is disabled:
Enable LPD-34594
, verify LPS-164563
is still disabled, then disable LPD-34594
.
If you disabled the feature flags through the UI, please restart Liferay for the changes to take effect.
2. Run the Following SQL Scripts
(Replace XXXXX
with your Liferay INSTANCEID)
-- Drop Data Set-related tables
drop table L_XXXXX_DataSet;
drop table L_XXXXX_DataSet_x;
drop table L_XXXXX_DataSetAction;
drop table L_XXXXX_DataSetAction_x;
drop table L_XXXXX_DataSetAction_l;
drop table L_XXXXX_DataSetCardsSection;
drop table L_XXXXX_DataSetCardsSection_x;
drop table L_XXXXX_DataSetClientExtensionFilter;
drop table L_XXXXX_DataSetClientExtensionFilter_l;
drop table L_XXXXX_DataSetClientExtensionFilter_x;
drop table L_XXXXX_DataSetDateFilter;
drop table L_XXXXX_DataSetDateFilter_l;
drop table L_XXXXX_DataSetDateFilter_x;
drop table L_XXXXX_DataSetListSection;
drop table L_XXXXX_DataSetListSection_x;
drop table L_XXXXX_DataSetSelectionFilter;
drop table L_XXXXX_DataSetSelectionFilter_l;
drop table L_XXXXX_DataSetSelectionFilter_x;
drop table L_XXXXX_DataSetSort;
drop table L_XXXXX_DataSetSort_l;
drop table L_XXXXX_DataSetSort_x;
drop table L_XXXXX_DataSetTableSection;
drop table L_XXXXX_DataSetTableSection_l;
drop table L_XXXXX_DataSetTableSection_x;
-- Clean up object definitions and relationships
delete from ObjectDefinition where externalReferenceCode like 'L_DATA_SET%';
delete from ObjectRelationship where externalReferenceCode like 'L_DATA_SET%';
-- Clean up orphaned ObjectFolderItems
-- First, get the ObjectFolderId of the default folder:
-- SELECT * FROM ObjectFolder where externalReferenceCode = 'default';
-- Replace XXXXX below with the ObjectFolderId from above:
delete from ObjectFolderItem
where objectFolderId = XXXXX
and objectDefinitionId NOT IN (select objectDefinitionId from ObjectDefinition);
-- Final cleanup of unused object references
delete from ObjectField where objectDefinitionId NOT IN (select objectDefinitionId FROM ObjectDefinition);
delete from ObjectFieldSetting where objectFieldId NOT IN (select objectFieldId FROM ObjectField);
delete from ObjectEntry where objectDefinitionId NOT IN (select objectDefinitionId FROM ObjectDefinition);
delete from ObjectStateFlow where objectFieldId NOT IN (select objectFieldId FROM ObjectField);
delete from ObjectState where objectStateFlowId NOT IN (select objectStateFlowId FROM ObjectStateFlow);
delete from ObjectStateTransition where objectStateFlowId NOT IN (select objectStateFlowId FROM ObjectStateFlow);
3. Final Steps
- Restart Liferay.
- Reindex the system.
- Reactivate feature flags:
LPD-34594
andLPS-164563
. - Restart Liferay again.
- Reindex once more.
4. Verification
Check the Object Definitions list and ensure the "Permission Inheritance Model" column shows:
- "Root object" for one entry
- "Inherited" for the rest (instead of "System")