migration = $factory; } public function getMigrations(Updater $updater) { return array( $this->migration->db->changeColumnType('log_visit', 'location_ip', 'INT UNSIGNED NOT NULL'), $this->migration->db->changeColumnType('logger_api_call', 'caller_ip', 'INT UNSIGNED')->addErrorCodeToIgnore(Updater\Migration\Db::ERROR_CODE_TABLE_NOT_EXISTS), ); } public function doUpdate(Updater $updater) { $config = Config::getInstance(); $dbInfos = $config->database; if (!isset($dbInfos['schema'])) { try { if (is_writable(Config::getLocalConfigPath())) { $config->database = $dbInfos; $config->forceSave(); } else { throw new \Exception('mandatory update failed'); } } catch (\Exception $e) { } } $updater->executeMigrations(__FILE__, $this->getMigrations($updater)); } }