From fd0db114506ecfbc41909df0fa4f18a1bae013da Mon Sep 17 00:00:00 2001 From: drigato Date: Thu, 19 Feb 2015 16:27:50 -0500 Subject: [PATCH] SAAS-596: Store file size and hash in database Added upgrader class to add new filesize column --- .../controllers/UpgradeController.php | 1 + .../upgrade_sql/airtime_2.5.10/upgrade.sql | 2 + airtime_mvc/application/upgrade/Upgrades.php | 45 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 airtime_mvc/application/controllers/upgrade_sql/airtime_2.5.10/upgrade.sql diff --git a/airtime_mvc/application/controllers/UpgradeController.php b/airtime_mvc/application/controllers/UpgradeController.php index b446b554c..c9748467b 100644 --- a/airtime_mvc/application/controllers/UpgradeController.php +++ b/airtime_mvc/application/controllers/UpgradeController.php @@ -18,6 +18,7 @@ class UpgradeController extends Zend_Controller_Action array_push($upgraders, new AirtimeUpgrader254()); array_push($upgraders, new AirtimeUpgrader255()); array_push($upgraders, new AirtimeUpgrader259()); + array_push($upgraders, new AirtimeUpgrader2510()); $didWePerformAnUpgrade = false; try diff --git a/airtime_mvc/application/controllers/upgrade_sql/airtime_2.5.10/upgrade.sql b/airtime_mvc/application/controllers/upgrade_sql/airtime_2.5.10/upgrade.sql new file mode 100644 index 000000000..25310cfb2 --- /dev/null +++ b/airtime_mvc/application/controllers/upgrade_sql/airtime_2.5.10/upgrade.sql @@ -0,0 +1,2 @@ +ALTER TABLE cc_files ADD COLUMN filesize integer NOT NULL +CONSTRAINT filesize_default DEFAULT 0 diff --git a/airtime_mvc/application/upgrade/Upgrades.php b/airtime_mvc/application/upgrade/Upgrades.php index efae6cf06..74b9a6d4d 100644 --- a/airtime_mvc/application/upgrade/Upgrades.php +++ b/airtime_mvc/application/upgrade/Upgrades.php @@ -296,3 +296,48 @@ class AirtimeUpgrader259 extends AirtimeUpgrader { } } } + +class AirtimeUpgrader2510 extends AirtimeUpgrader +{ + protected function getSupportedVersions() { + return array ( + '2.5.9' + ); + } + + public function getNewVersion() { + return '2.5.10'; + } + + public function upgrade($dir = __DIR__) { + Cache::clear(); + assert($this->checkIfUpgradeSupported()); + + $newVersion = $this->getNewVersion(); + + try { + $this->toggleMaintenanceScreen(true); + Cache::clear(); + + // Begin upgrade + $airtimeConf = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : "/etc/airtime/airtime.conf"; + $values = parse_ini_file($airtimeConf, true); + + $username = $values['database']['dbuser']; + $password = $values['database']['dbpass']; + $host = $values['database']['host']; + $database = $values['database']['dbname']; + + passthru("export PGPASSWORD=$password && psql -h $host -U $username -q -f $dir/upgrade_sql/airtime_" + .$this->getNewVersion()."/upgrade.sql $database 2>&1 | grep -v -E \"will create implicit sequence|will create implicit index\""); + + Application_Model_Preference::SetAirtimeVersion($newVersion); + Cache::clear(); + + $this->toggleMaintenanceScreen(false); + } catch(Exception $e) { + $this->toggleMaintenanceScreen(false); + throw $e; + } + } +}