/** * @dataProvider providerRollbackSuccess * @param $module * @param $step * @param $tableFilter * @param $expected */ public function testRollbackSuccess($module, $step, $tableFilter, $expected) { self::$manager->up($module); $result = self::$db->query("SHOW TABLES LIKE '" . $tableFilter . "';", Adapter::QUERY_MODE_EXECUTE); $this->assertEquals(5, $result->count()); self::$manager->rollback($module, $step); $result = self::$db->query("SHOW TABLES LIKE '" . $tableFilter . "';", Adapter::QUERY_MODE_EXECUTE); $this->assertEquals($expected, $result->count()); foreach ($result->toArray() as $data) { foreach ($data as $tableName) { self::$db->query("DROP TABLE `" . $tableName . "`", Adapter::QUERY_MODE_EXECUTE); } } }
/** * up */ public function upAction() { $module = $this->request->getParam('module'); if ($module) { $this->console->writeLine('Only for module "' . $module . '":'); } $migration = $this->request->getParam('to'); $includeModules = $this->request->getParam('includemodules'); try { $this->manager->up($module, $migration, $includeModules); foreach ($this->manager->getMessages() as $message) { $this->console->writeLine($message, Color::GREEN); } } catch (ZFCToolException $e) { $this->console->writeLine($e->getMessage(), Color::RED); } catch (\Exception $e) { $this->console->writeLine($e->getMessage(), Color::RED); } }