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