|
22 | 22 |
|
23 | 23 | import java.io.InputStream; |
24 | 24 | import java.sql.Connection; |
25 | | -import java.sql.PreparedStatement; |
26 | | -import java.sql.SQLException; |
27 | 25 | import java.util.ArrayList; |
28 | 26 | import java.util.List; |
29 | 27 |
|
@@ -59,7 +57,7 @@ public InputStream[] getPrepareScripts() { |
59 | 57 |
|
60 | 58 | @Override |
61 | 59 | public void performDataMigration(Connection conn) { |
62 | | - fixIndexes(conn); |
| 60 | + fixForeignKeyNames(conn); |
63 | 61 | } |
64 | 62 |
|
65 | 63 | @Override |
@@ -88,47 +86,29 @@ public void updateSystemVmTemplates(Connection conn) { |
88 | 86 | } |
89 | 87 | } |
90 | 88 |
|
91 | | - private void fixIndexes(Connection conn) { |
| 89 | + private void fixForeignKeyNames(Connection conn) { |
92 | 90 | //Alter foreign key name for user_vm table from fk_user_data_id to fk_user_vm__user_data_id (if exists) and re-add it again |
93 | 91 | List<String> keys = new ArrayList<String>(); |
94 | 92 | keys.add("fk_user_data_id"); |
| 93 | + keys.add("fk_user_vm_user_data_id"); |
95 | 94 | DbUpgradeUtils.dropKeysIfExist(conn, "cloud.user_vm", keys, true); |
96 | 95 | DbUpgradeUtils.dropKeysIfExist(conn, "cloud.user_vm", keys, false); |
97 | | - try { |
98 | | - PreparedStatement pstmt = conn.prepareStatement( |
99 | | - "CALL `cloud`.`IDEMPOTENT_ADD_FOREIGN_KEY`('cloud.user_vm', 'user_data', 'id');"); |
100 | | - pstmt.execute(); |
101 | | - pstmt.close(); |
102 | | - } catch (SQLException e) { |
103 | | - LOG.error("Unable to update foreign key in user_vm table ", e); |
104 | | - } |
| 96 | + DbUpgradeUtils.addForeignKey(conn, "user_vm", "user_data_id", "user_data", "id"); |
105 | 97 |
|
106 | 98 | //Alter foreign key name for vm_template table from fk_user_data_id to fk_vm_template__user_data_id (if exists) and re-add it again |
107 | 99 | keys = new ArrayList<>(); |
108 | 100 | keys.add("fk_user_data_id"); |
| 101 | + keys.add("fk_vm_template_user_data_id"); |
109 | 102 | DbUpgradeUtils.dropKeysIfExist(conn, "cloud.vm_template", keys, true); |
110 | 103 | DbUpgradeUtils.dropKeysIfExist(conn, "cloud.vm_template", keys, false); |
111 | | - try { |
112 | | - PreparedStatement pstmt = conn.prepareStatement( |
113 | | - "CALL `cloud`.`IDEMPOTENT_ADD_FOREIGN_KEY`('cloud.vm_template', 'user_data', 'id');"); |
114 | | - pstmt.execute(); |
115 | | - pstmt.close(); |
116 | | - } catch (SQLException e) { |
117 | | - LOG.error("Unable to update foreign key in user_vm table ", e); |
118 | | - } |
| 104 | + DbUpgradeUtils.addForeignKey(conn, "vm_template", "user_data_id", "user_data", "id"); |
119 | 105 |
|
120 | 106 | //Alter foreign key name for volumes table from fk_passphrase_id to fk_volumes__passphrase_id (if exists) and re-add it again |
121 | 107 | keys = new ArrayList<>(); |
122 | 108 | keys.add("fk_passphrase_id"); |
| 109 | + keys.add("fk_volumes_passphrase_id"); |
123 | 110 | DbUpgradeUtils.dropKeysIfExist(conn, "cloud.volumes", keys, true); |
124 | 111 | DbUpgradeUtils.dropKeysIfExist(conn, "cloud.volumes", keys, false); |
125 | | - try { |
126 | | - PreparedStatement pstmt = conn.prepareStatement( |
127 | | - "CALL `cloud`.`IDEMPOTENT_ADD_FOREIGN_KEY`('cloud.volumes', 'passphrase', 'id');"); |
128 | | - pstmt.execute(); |
129 | | - pstmt.close(); |
130 | | - } catch (SQLException e) { |
131 | | - LOG.error("Unable to update foreign key in volumes table ", e); |
132 | | - } |
| 112 | + DbUpgradeUtils.addForeignKey(conn, "volumes", "passphrase_id","passphrase", "id"); |
133 | 113 | } |
134 | 114 | } |
0 commit comments