/** * Executa o soft rollback * * @param mixed $rollback * @param Command $command * @return bool */ public static function execSoftRollback($rollback, Command $command) { RollbackManager::$errors = []; $counterMigrationFilesDeleted = 0; //////////////////////////////////////////////TRANSFORM ROLLBACK FILE TO ARRAY////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors), function () use(&$rollback) { return RollbackManager::transformRollbackFileToRollbackArrayIfNeeded($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_READING_ROLLBACK_FILE); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////CHECK IF MIGRATION DATABASE CONTROLL EXISTS/////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors), function () { return RollbackManager::verifyIfMigrationsControllDbExists(); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_IF_MIGRATIONS_CONTROLL_DB_EXISTS); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////RUN MIGRATION ROLLBACK//////////////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback, $command) { return RollbackManager::runMigrationRollback($rollback, $command); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_RUNNING_MIGRATE_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////RUNNING ROUTEBUILDER FILE ROLLBACK//////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::routeBuilderFileRollback($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_RUNNING_ROUTEBUILDER_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////ROLLBACK DO ARQUIVO DE ROTAS////////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::runRoutesRollback($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_RUNNING_ROUTES_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////ROLLBACK DOS ARQUIVOS DE MIGRATION/////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback, &$counterMigrationFilesDeleted) { return RollbackManager::runMigrationFilesRollback($rollback, $counterMigrationFilesDeleted); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_RUNNING_MIGRATION_FILES_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////ROLLBACK DO CONTADOR DE MIGRATION//////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback, &$counterMigrationFilesDeleted) { return RollbackManager::runMigrationCounterRollback($rollback, $counterMigrationFilesDeleted); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_RUNNING_MIGRATION_COUNTER_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////ROLLBACK DOS ARQUIVOS ANTIGOS DE MIGRATION///////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::runMigrationOldFilesRollback($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_RUNNING_MIGRATION_OLD_FILES_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////ROLLBACK DOS ARQUIVOS DO MODULEO/////////////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::runModuleFilesRollback($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_MODULE_FILE_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////ROLLBACK DOS CONFIGURAÇÕES DO MODULO/////////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::runModuleConfigsRollback($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_MODULE_CONFIG_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////ROLLBACK DO REGISTRO DO MODULO///////////////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::moduleUnregister($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_MODULE_UNREGISTER); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////ROLLBACK DO ARQUIVO DE ROLLBACK DO MODULO////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::runModuleRollbackFileRollback($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_MODULE_ROLLBACK_FILE_ROLLBACK); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////ROLLBACK DAS PASTAS CRIADAS PELO MODULO//////////////////////////////////// RollbackManager::executeRollbackMethod(empty(RollbackManager::$errors) && is_array($rollback) && !empty($rollback), function () use($rollback) { return RollbackManager::removeModuleFolders($rollback); }, function ($result) { if ($result !== true) { RollbackManager::$errors = array_merge(RollbackManager::$errors, $result); } }, $command, Strings::STATUS_REMOVING_FOLDERS); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////RESPONSE (OUTPUT)/////////////////////////////////////////////// if (empty(RollbackManager::$errors)) { //Se os comandos rodarem com sucesso //Comentario comando executado com sucesso $command->info(Strings::SUCCESS_ROLLBACK); return true; } else { //Se ocorrer erro ao rodar os comandos foreach (RollbackManager::$errors as $error) { $command->error($error); } $command->info(Strings::ERROR_ROLLBACK); return false; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////// }