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