1
22
23 package com.liferay.portal.upgrade.v4_4_0;
24
25 import com.liferay.portal.kernel.dao.jdbc.DataAccess;
26 import com.liferay.portal.kernel.uuid.PortalUUIDUtil;
27 import com.liferay.portal.upgrade.UpgradeException;
28 import com.liferay.portal.upgrade.UpgradeProcess;
29
30 import java.sql.Connection;
31 import java.sql.PreparedStatement;
32 import java.sql.ResultSet;
33
34 import org.apache.commons.logging.Log;
35 import org.apache.commons.logging.LogFactory;
36
37
43 public class UpgradeUUID extends UpgradeProcess {
44
45 public void upgrade() throws UpgradeException {
46 _log.info("Upgrading");
47
48 try {
49 doUpgrade();
50 }
51 catch (Exception e) {
52 throw new UpgradeException(e);
53 }
54 }
55
56 protected void doUpgrade() throws Exception {
57 upgradeTable("BlogsEntry", "entryId");
58 upgradeTable("BookmarksEntry", "entryId");
59 upgradeTable("BookmarksFolder", "folderId");
60 upgradeTable("DLFileEntry", "fileEntryId");
61 upgradeTable("DLFileShortcut", "fileShortcutId");
62 upgradeTable("DLFolder", "folderId");
63 upgradeTable("CalEvent", "eventId");
64 upgradeTable("IGFolder", "folderId");
65 upgradeTable("IGImage", "imageId");
66 upgradeTable("JournalArticle", "id_");
67 upgradeTable("JournalStructure", "id_");
68 upgradeTable("JournalTemplate", "id_");
69 upgradeTable("MBCategory", "categoryId");
70 upgradeTable("MBMessage", "messageId");
71 upgradeTable("PollsChoice", "choiceId");
72 upgradeTable("PollsQuestion", "questionId");
73 upgradeTable("User_", "userId");
74 upgradeTable("WikiNode", "nodeId");
75 upgradeTable("WikiPage", "pageId");
76 }
77
78 protected void upgradeTable(String tableName, String pkColName)
79 throws Exception {
80
81 Connection con = null;
82 PreparedStatement ps = null;
83 ResultSet rs = null;
84
85 try {
86 con = DataAccess.getConnection();
87
88 ps = con.prepareStatement(
89 "SELECT " + pkColName + " FROM " + tableName +
90 " WHERE uuid_ IS NULL or uuid_ = ''");
91
92 rs = ps.executeQuery();
93
94 while (rs.next()) {
95 long pkColValue = rs.getLong(pkColName);
96
97 String uuid = PortalUUIDUtil.generate();
98
99 ps = con.prepareStatement(
100 "UPDATE " + tableName + " SET uuid_ = '" + uuid +
101 "' WHERE " + pkColName + " = " + pkColValue);
102
103 ps.executeUpdate();
104
105 ps.close();
106 }
107 }
108 finally {
109 DataAccess.cleanUp(con, ps, rs);
110 }
111 }
112
113 private static Log _log = LogFactory.getLog(UpgradeUUID.class);
114
115 }