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