mirror of https://github.com/apache/cloudstack.git
cleanup script is also running now as well
This commit is contained in:
parent
fb4e67c140
commit
a6ac728761
|
|
@ -17,6 +17,8 @@
|
|||
*/
|
||||
package com.cloud.upgrade.dao;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface DbUpgrade {
|
||||
String[] getUpgradableVersionRange();
|
||||
|
||||
|
|
@ -24,7 +26,20 @@ public interface DbUpgrade {
|
|||
|
||||
boolean supportsRollingUpgrade();
|
||||
|
||||
void prepare();
|
||||
void upgrade();
|
||||
void cleanup();
|
||||
/**
|
||||
* @return the script to prepare the database schema for the
|
||||
* data migration step.
|
||||
*/
|
||||
File getPrepareScript();
|
||||
|
||||
/**
|
||||
* Performs the actual data migration.
|
||||
*/
|
||||
void performDataMigration();
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
File getCleanupScript();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,46 +18,38 @@
|
|||
package com.cloud.upgrade.dao;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.db.ScriptRunner;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
public class Upgrade217to22 implements DbUpgrade {
|
||||
|
||||
@Override
|
||||
public void prepare() {
|
||||
public File getPrepareScript() {
|
||||
File file = PropertiesUtil.findConfigFile("schema-21to22.sql");
|
||||
if (file == null) {
|
||||
throw new CloudRuntimeException("Unable to find the upgrade script, schema-21to22.sql");
|
||||
}
|
||||
|
||||
try {
|
||||
FileReader reader = new FileReader(file);
|
||||
Connection conn = Transaction.getStandaloneConnection();
|
||||
ScriptRunner runner = new ScriptRunner(conn, false, false);
|
||||
runner.runScript(reader);
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new CloudRuntimeException("Unable to find upgrade script, schema-21to22.sql", e);
|
||||
} catch (IOException e) {
|
||||
throw new CloudRuntimeException("Unable to read upgrade script, schema-21to22.sql", e);
|
||||
} catch (SQLException e) {
|
||||
throw new CloudRuntimeException("Unable to execute upgrade script, schema-21to22.sql", e);
|
||||
}
|
||||
return file;
|
||||
}
|
||||
|
||||
protected void upgradeNetworks() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upgrade() {
|
||||
public void performDataMigration() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanup() {
|
||||
public File getCleanupScript() {
|
||||
File file = PropertiesUtil.findConfigFile("schema-21to22-cleanup.sql");
|
||||
if (file == null) {
|
||||
throw new CloudRuntimeException("Unable to find the upgrade script, schema-21to22-cleanup.sql");
|
||||
}
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@
|
|||
*/
|
||||
package com.cloud.upgrade.dao;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
|
|
@ -38,6 +42,7 @@ import com.cloud.utils.db.DB;
|
|||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
import com.cloud.utils.db.ScriptRunner;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.SearchCriteria.Func;
|
||||
|
|
@ -124,6 +129,21 @@ public class VersionDaoImpl extends GenericDaoBase<VersionVO, Long> implements V
|
|||
return vers.get(0);
|
||||
}
|
||||
|
||||
protected void runScript(File file) {
|
||||
try {
|
||||
FileReader reader = new FileReader(file);
|
||||
Connection conn = Transaction.getStandaloneConnection();
|
||||
ScriptRunner runner = new ScriptRunner(conn, false, true);
|
||||
runner.runScript(reader);
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new CloudRuntimeException("Unable to find upgrade script, schema-21to22.sql", e);
|
||||
} catch (IOException e) {
|
||||
throw new CloudRuntimeException("Unable to read upgrade script, schema-21to22.sql", e);
|
||||
} catch (SQLException e) {
|
||||
throw new CloudRuntimeException("Unable to execute upgrade script, schema-21to22.sql", e);
|
||||
}
|
||||
}
|
||||
|
||||
@DB
|
||||
protected void upgrade(String dbVersion, String currentVersion) throws ConfigurationException {
|
||||
s_logger.info("Database upgrade must be performed from " + dbVersion + " to " + currentVersion);
|
||||
|
|
@ -149,8 +169,9 @@ public class VersionDaoImpl extends GenericDaoBase<VersionVO, Long> implements V
|
|||
s_logger.info("Running upgrade " + upgrade.getClass().getSimpleName() + " to upgrade from " + upgrade.getUpgradableVersionRange()[0] + "-" + upgrade.getUpgradableVersionRange()[1] + " to " + upgrade.getUpgradedVersion());
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
upgrade.prepare();
|
||||
upgrade.upgrade();
|
||||
File script = upgrade.getPrepareScript();
|
||||
runScript(script);
|
||||
upgrade.performDataMigration();
|
||||
VersionVO version = new VersionVO(upgrade.getUpgradedVersion());
|
||||
persist(version);
|
||||
txn.commit();
|
||||
|
|
@ -161,7 +182,8 @@ public class VersionDaoImpl extends GenericDaoBase<VersionVO, Long> implements V
|
|||
VersionVO version = findByVersion(upgrade.getUpgradedVersion(), Step.Upgrade);
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
upgrade.cleanup();
|
||||
File script = upgrade.getCleanupScript();
|
||||
runScript(script);
|
||||
version.setStep(Step.Complete);
|
||||
version.setUpdated(new Date());
|
||||
update(version.getId(), version);
|
||||
|
|
|
|||
|
|
@ -5,24 +5,34 @@ DROP TABLE IF EXISTS `cloud`.`disk_template_ref`;
|
|||
|
||||
-- Then remove columns
|
||||
|
||||
ALTER TABLE `cloud`.`volume` DROP COLUMN `mirror_state`;
|
||||
ALTER TABLE `cloud`.`volume` DROP COLUMN `mirror_vol`;
|
||||
ALTER TABLE `cloud`.`volume` DROP COLUMN `destroyed`;
|
||||
ALTER TABLE `cloud`.`volumes` DROP COLUMN `mirror_state`;
|
||||
ALTER TABLE `cloud`.`volumes` DROP COLUMN `mirror_vol`;
|
||||
ALTER TABLE `cloud`.`volumes` DROP COLUMN `destroyed`;
|
||||
|
||||
DROP TABLE `cloud`.`ip_forwarding`;
|
||||
|
||||
ALTER TABLE `cloud`.`host` DROP COLUMN `sequence`;
|
||||
|
||||
DROP TABLE `cloud`,`op_vm_host`;
|
||||
DROP TABLE `cloud`.`op_vm_host`;
|
||||
|
||||
ALTER TABLE `cloud`.vm_instance` DROP COLUMN `iso_id`;
|
||||
ALTER TABLE `cloud`.vm_instance` DROP COLUMN `display_name`;
|
||||
ALTER TABLE `cloud`.vm_instance` DROP COLUMN `group`;
|
||||
ALTER TABLE `cloud`.vm_instance` DROP COLUMN `storage_ip`;
|
||||
ALTER TABLE `cloud`.vm_instance` DROP COLUMN `mirrored_vols`;
|
||||
ALTER TABLE `cloud`.`vm_instance` DROP COLUMN `iso_id`;
|
||||
ALTER TABLE `cloud`.`vm_instance` DROP COLUMN `display_name`;
|
||||
#ALTER TABLE `cloud`.`vm_instance` DROP COLUMN `group`;
|
||||
ALTER TABLE `cloud`.`vm_instance` DROP COLUMN `storage_ip`;
|
||||
ALTER TABLE `cloud`.`vm_instance` DROP COLUMN `mirrored_vols`;
|
||||
|
||||
DROP TABLE `cloud`.`pricing`;
|
||||
|
||||
ALTER TABLE `cloud`.`user_vm` DROP FOREIGN KEY `fk_user_vm__domain_router_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP INDEX `i_user_vm__domain_router_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP FOREIGN KEY `fk_user_vm__service_offering_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP INDEX `i_user_vm__service_offering_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP FOREIGN KEY `fk_user_vm__account_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP INDEX `i_user_vm__account_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP FOREIGN KEY `fk_user_vm__external_ip_address`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP INDEX `i_user_vm__external_ip_address`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP FOREIGN KEY `fk_user_vm__external_vlan_db_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP INDEX `i_user_vm__external_vlan_db_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP COLUMN `domain_router_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP COLUMN `service_offering_id`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP COLUMN `vnet`;
|
||||
|
|
@ -33,6 +43,12 @@ ALTER TABLE `cloud`.`user_vm` DROP COLUMN `external_ip_address`;
|
|||
ALTER TABLE `cloud`.`user_vm` DROP COLUMN `external_mac_address`;
|
||||
ALTER TABLE `cloud`.`user_vm` DROP COLUMN `external_vlan_db_id`;
|
||||
|
||||
ALTER TABLE `cloud`.`domain_router` DROP FOREIGN KEY `fk_domain_router__account_id`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP FOREIGN KEY `fk_domain_router__public_ip_address`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP FOREIGN KEY `fk_domain_router__vlan_id`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP INDEX `i_domain_router__account_id`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP INDEX `i_domain_router__public_ip_address`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP INDEX `i_domain_router__vlan_id`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP COLUMN `gateway`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP COLUMN `ram_size`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP COLUMN `dns1`;
|
||||
|
|
@ -47,6 +63,8 @@ ALTER TABLE `cloud`.`domain_router` DROP COLUMN `domain_id`;
|
|||
ALTER TABLE `cloud`.`domain_router` DROP COLUMN `account_id`;
|
||||
ALTER TABLE `cloud`.`domain_router` DROP COLUMN `dhcp_ip_address`;
|
||||
|
||||
ALTER TABLE `cloud`.`console_proxy` DROP FOREIGN KEY `fk_console_proxy__vlan_id`;
|
||||
ALTER TABLE `cloud`.`console_proxy` DROP INDEX `i_console_proxy__vlan_id`;
|
||||
ALTER TABLE `cloud`.`console_proxy` DROP COLUMN `gateway`;
|
||||
ALTER TABLE `cloud`.`console_proxy` DROP COLUMN `dns1`;
|
||||
ALTER TABLE `cloud`.`console_proxy` DROP COLUMN `dns2`;
|
||||
|
|
@ -70,15 +88,12 @@ ALTER TABLE `cloud`.`secondary_storage_vm` DROP COLUMN `vlan_id`;
|
|||
ALTER TABLE `cloud`.`secondary_storage_vm` DROP COLUMN `ram_size`;
|
||||
ALTER TABLE `cloud`.`secondary_storage_vm` DROP COLUMN `guid`;
|
||||
|
||||
|
||||
DROP TABLE `cloud`.`vm_disk`;
|
||||
|
||||
ALTER TABLE `cloud`.`disk_offering` DROP COLUMN `mirrored`;
|
||||
|
||||
ALTER TABLE `cloud`.`service_offering` DROP COLUMN `guest_ip_type`;
|
||||
|
||||
DROP TABLE `cloud`.`security_group_vm_map`;
|
||||
DROP TABLE `cloud`.`load_balancer_vm_map`;
|
||||
DROP TABLE `cloud`.`security_group`;
|
||||
|
||||
ALTER TABLE `cloud`.`load_balancer_vm_map` DROP COLUMN `pending`;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue