CLOUDSTACK-6599: Add the column in Java upgrade path since 4.2 already has the extract template/volume columns

(cherry picked from commit be765ce8680564b743a73dd360c590c0e495c204)
This commit is contained in:
Nitin Mehta 2014-05-30 14:53:42 -07:00
parent 5393387bbd
commit 81d3a9e3ee
2 changed files with 33 additions and 4 deletions

View File

@ -61,8 +61,41 @@ public class Upgrade430to440 implements DbUpgrade {
public void performDataMigration(Connection conn) {
secondaryIpsAccountAndDomainIdsUpdate(conn);
moveCidrsToTheirOwnTable(conn);
addExtractTemplateAndVolumeColumns(conn);
}
private void addExtractTemplateAndVolumeColumns(Connection conn) {
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// Add download_url_created, download_url to template_store_ref
pstmt = conn.prepareStatement("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'cloud' AND TABLE_NAME = 'template_store_ref' AND COLUMN_NAME = 'download_url_created'");
rs = pstmt.executeQuery();
if (!rs.next()) {
pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`template_store_ref` ADD COLUMN `download_url_created` datetime");
pstmt.executeUpdate();
pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`template_store_ref` ADD COLUMN `download_url` varchar(255)");
pstmt.executeUpdate();
}
// Add download_url_created to volume_store_ref - note download_url already exists
pstmt = conn.prepareStatement("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'cloud' AND TABLE_NAME = 'volume_store_ref' AND COLUMN_NAME = 'download_url_created'");
rs = pstmt.executeQuery();
if (!rs.next()) {
pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`volume_store_ref` ADD COLUMN `download_url_created` datetime");
pstmt.executeUpdate();
}
} catch (SQLException e) {
throw new CloudRuntimeException("Adding columns for Extract Template And Volume functionality failed");
}
}
private void secondaryIpsAccountAndDomainIdsUpdate(Connection conn) {
PreparedStatement pstmt = null;

View File

@ -1686,7 +1686,3 @@ alter table `cloud`.`vlan` add column created datetime NULL COMMENT 'date create
alter table `cloud`.`user_ip_address` drop key public_ip_address;
alter table `cloud`.`user_ip_address` add UNIQUE KEY public_ip_address (public_ip_address,source_network_id, removed);
ALTER TABLE `cloud`.`volume_store_ref` ADD `download_url_created` datetime;
ALTER TABLE `cloud`.`template_store_ref` ADD `download_url_created` datetime;
ALTER TABLE `cloud`.`template_store_ref` ADD `download_url` varchar(255);