migration = $factory; } public function getMigrations(Updater $updater) { $result = array( $this->migration->db->sql('ALTER TABLE ' . Common::prefixTable('logger_message') . ' MODIFY level VARCHAR(16) NULL') ); $unneededLogTables = array('logger_exception', 'logger_error', 'logger_api_call'); foreach ($unneededLogTables as $table) { $tableName = Common::prefixTable($table); try { $rows = Db::fetchOne("SELECT COUNT(*) FROM $tableName"); if ($rows == 0) { $result[] = $this->migration->db->dropTable($table); } } catch (\Exception $ex) { // ignore } } return $result; } public function doUpdate(Updater $updater) { // change level column in logger_message table to string & remove other logging tables if empty $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); } }