1
14
15 package com.liferay.portal.upgrade.v4_3_0;
16
17 import com.liferay.portal.kernel.upgrade.UpgradeProcess;
18 import com.liferay.portal.kernel.upgrade.util.TempUpgradeColumnImpl;
19 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
20 import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
21 import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
22 import com.liferay.portal.kernel.upgrade.util.ValueMapper;
23 import com.liferay.portal.kernel.util.ArrayUtil;
24 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
25 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
26 import com.liferay.portal.upgrade.v4_3_0.util.PortletPreferencesTable;
27 import com.liferay.portal.upgrade.v4_3_0.util.PrefsOwnerIdUpgradeColumnImpl;
28 import com.liferay.portal.upgrade.v4_3_0.util.PrefsOwnerTypeUpgradeColumnImpl;
29 import com.liferay.portal.upgrade.v4_3_0.util.PrefsPlidUpgradeColumnImpl;
30 import com.liferay.portal.upgrade.v4_3_0.util.PrefsXMLUpgradeColumnImpl;
31 import com.liferay.portal.util.PortletKeys;
32
33 import java.sql.Types;
34
35 import java.util.Iterator;
36
37
42 public class UpgradePortletPreferences extends UpgradeProcess {
43
44 protected void doUpgrade() throws Exception {
45
46
48 runSQL(
49 "delete from PortletPreferences where ownerId = '0' and " +
50 "ownerType = " + PortletKeys.PREFS_OWNER_TYPE_COMPANY);
51
52 ValueMapper companyIdMapper = AvailableMappersUtil.getCompanyIdMapper();
53
54 Iterator<Object> itr = companyIdMapper.iterator();
55
56 while (itr.hasNext()) {
57 String webId = (String)itr.next();
58
59 Long companyIdObj = (Long)companyIdMapper.getNewValue(webId);
60
61 runSQL(
62 "delete from PortletPreferences where ownerId = '" +
63 companyIdObj.longValue() + "' and ownerType = " +
64 PortletKeys.PREFS_OWNER_TYPE_COMPANY);
65 }
66
67 Object[][] preferencesColumns1 =
68 {{"layoutId", new Integer(Types.VARCHAR)}};
69 Object[][] preferencesColumns2 =
70 PortletPreferencesTable.TABLE_COLUMNS.clone();
71
72 Object[][] preferencesColumns = ArrayUtil.append(
73 preferencesColumns1, preferencesColumns2);
74
75 PrefsOwnerIdUpgradeColumnImpl upgradeOwnerIdColumn =
76 new PrefsOwnerIdUpgradeColumnImpl(
77 AvailableMappersUtil.getCompanyIdMapper(),
78 AvailableMappersUtil.getGroupIdMapper(),
79 AvailableMappersUtil.getUserIdMapper());
80
81 UpgradeColumn upgradeOwnerTypeColumn =
82 new PrefsOwnerTypeUpgradeColumnImpl(upgradeOwnerIdColumn);
83
84 UpgradeColumn upgradeLayoutIdColumn =
85 new TempUpgradeColumnImpl("layoutId");
86
87 UpgradeColumn upgradePlidColumn = new PrefsPlidUpgradeColumnImpl(
88 upgradeOwnerIdColumn, upgradeLayoutIdColumn,
89 AvailableMappersUtil.getLayoutPlidMapper());
90
91 UpgradeColumn upgradePortletIdColumn =
92 new TempUpgradeColumnImpl("portletId");
93
94 UpgradeColumn upgradePreferencesColumn = new PrefsXMLUpgradeColumnImpl(
95 upgradePortletIdColumn, AvailableMappersUtil.getGroupIdMapper(),
96 AvailableMappersUtil.getPollsQuestionIdMapper(),
97 AvailableMappersUtil.getWikiNodeIdMapper());
98
99 UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
100 PortletPreferencesTable.TABLE_NAME, preferencesColumns,
101 new PKUpgradeColumnImpl("portletPreferencesId", false),
102 upgradeOwnerIdColumn, upgradeOwnerTypeColumn, upgradeLayoutIdColumn,
103 upgradePlidColumn, upgradePortletIdColumn,
104 upgradePreferencesColumn);
105
106 String createSQL = PortletPreferencesTable.TABLE_SQL_CREATE;
107
108 createSQL =
109 createSQL.substring(0, createSQL.length() - 1) +
110 ",layoutId VARCHAR(75) null)";
111
112 upgradeTable.setCreateSQL(createSQL);
113
114 upgradeTable.updateTable();
115
116
118 runSQL(_UPGRADE_SCHEMA);
119 }
120
121 private static final String[] _UPGRADE_SCHEMA = {
122 "alter table PortletPreferences drop column layoutId"
123 };
124
125 }