001
014
015 package com.liferay.portal.upgrade.v4_3_0;
016
017 import com.liferay.portal.kernel.upgrade.UpgradeProcess;
018 import com.liferay.portal.kernel.upgrade.util.TempUpgradeColumnImpl;
019 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
020 import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
021 import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
022 import com.liferay.portal.kernel.upgrade.util.ValueMapper;
023 import com.liferay.portal.kernel.util.ArrayUtil;
024 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
025 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
026 import com.liferay.portal.upgrade.v4_3_0.util.PortletPreferencesTable;
027 import com.liferay.portal.upgrade.v4_3_0.util.PrefsOwnerIdUpgradeColumnImpl;
028 import com.liferay.portal.upgrade.v4_3_0.util.PrefsOwnerTypeUpgradeColumnImpl;
029 import com.liferay.portal.upgrade.v4_3_0.util.PrefsPlidUpgradeColumnImpl;
030 import com.liferay.portal.upgrade.v4_3_0.util.PrefsXMLUpgradeColumnImpl;
031 import com.liferay.portal.util.PortletKeys;
032
033 import java.sql.Types;
034
035 import java.util.Iterator;
036
037
040 public class UpgradePortletPreferences extends UpgradeProcess {
041
042 protected void doUpgrade() throws Exception {
043
044
045
046 runSQL(
047 "delete from PortletPreferences where ownerId = '0' and " +
048 "ownerType = " + PortletKeys.PREFS_OWNER_TYPE_COMPANY);
049
050 ValueMapper companyIdMapper = AvailableMappersUtil.getCompanyIdMapper();
051
052 Iterator<Object> itr = companyIdMapper.iterator();
053
054 while (itr.hasNext()) {
055 String webId = (String)itr.next();
056
057 Long companyIdObj = (Long)companyIdMapper.getNewValue(webId);
058
059 runSQL(
060 "delete from PortletPreferences where ownerId = '" +
061 companyIdObj.longValue() + "' and ownerType = " +
062 PortletKeys.PREFS_OWNER_TYPE_COMPANY);
063 }
064
065 Object[][] preferencesColumns1 =
066 {{"layoutId", new Integer(Types.VARCHAR)}};
067 Object[][] preferencesColumns2 =
068 PortletPreferencesTable.TABLE_COLUMNS.clone();
069
070 Object[][] preferencesColumns = ArrayUtil.append(
071 preferencesColumns1, preferencesColumns2);
072
073 PrefsOwnerIdUpgradeColumnImpl upgradeOwnerIdColumn =
074 new PrefsOwnerIdUpgradeColumnImpl(
075 AvailableMappersUtil.getCompanyIdMapper(),
076 AvailableMappersUtil.getGroupIdMapper(),
077 AvailableMappersUtil.getUserIdMapper());
078
079 UpgradeColumn upgradeOwnerTypeColumn =
080 new PrefsOwnerTypeUpgradeColumnImpl(upgradeOwnerIdColumn);
081
082 UpgradeColumn upgradeLayoutIdColumn =
083 new TempUpgradeColumnImpl("layoutId");
084
085 UpgradeColumn upgradePlidColumn = new PrefsPlidUpgradeColumnImpl(
086 upgradeOwnerIdColumn, upgradeLayoutIdColumn,
087 AvailableMappersUtil.getLayoutPlidMapper());
088
089 UpgradeColumn upgradePortletIdColumn =
090 new TempUpgradeColumnImpl("portletId");
091
092 UpgradeColumn upgradePreferencesColumn = new PrefsXMLUpgradeColumnImpl(
093 upgradePortletIdColumn, AvailableMappersUtil.getGroupIdMapper(),
094 AvailableMappersUtil.getPollsQuestionIdMapper(),
095 AvailableMappersUtil.getWikiNodeIdMapper());
096
097 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
098 PortletPreferencesTable.TABLE_NAME, preferencesColumns,
099 new PKUpgradeColumnImpl("portletPreferencesId", false),
100 upgradeOwnerIdColumn, upgradeOwnerTypeColumn, upgradeLayoutIdColumn,
101 upgradePlidColumn, upgradePortletIdColumn,
102 upgradePreferencesColumn);
103
104 String createSQL = PortletPreferencesTable.TABLE_SQL_CREATE;
105
106 createSQL =
107 createSQL.substring(0, createSQL.length() - 1) +
108 ",layoutId VARCHAR(75) null)";
109
110 upgradeTable.setCreateSQL(createSQL);
111
112 upgradeTable.updateTable();
113
114
115
116 runSQL(_UPGRADE_SCHEMA);
117 }
118
119 private static final String[] _UPGRADE_SCHEMA = {
120 "alter table PortletPreferences drop column layoutId"
121 };
122
123 }