/**
  * Update accountsStorage
  *
  * @param array $_data
  * @return void
  */
 protected function _updateAccountsStorage($_data)
 {
     $originalBackend = Tinebase_User::getConfiguredBackend();
     $newBackend = $_data['backend'];
     Tinebase_User::setBackendType($_data['backend']);
     $config = isset($_data[$_data['backend']]) ? $_data[$_data['backend']] : $_data;
     Tinebase_User::setBackendConfiguration($config, null, true);
     Tinebase_User::saveBackendConfiguration();
     if ($originalBackend != $newBackend && $this->isInstalled('Addressbook') && $originalBackend == Tinebase_User::SQL) {
         Setup_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " Switching from {$originalBackend} to {$newBackend} account storage");
         try {
             $db = Setup_Core::getDb();
             $transactionId = Tinebase_TransactionManager::getInstance()->startTransaction($db);
             $this->_migrateFromSqlAccountsStorage();
             Tinebase_TransactionManager::getInstance()->commitTransaction($transactionId);
         } catch (Exception $e) {
             Tinebase_TransactionManager::getInstance()->rollBack();
             Setup_Core::getLogger()->err(__METHOD__ . '::' . __LINE__ . ' ' . $e->getMessage());
             Setup_Core::getLogger()->err(__METHOD__ . '::' . __LINE__ . ' ' . $e->getTraceAsString());
             Tinebase_User::setBackendType($originalBackend);
             Tinebase_User::saveBackendConfiguration();
             throw $e;
         }
     }
 }