/** * Rename Table method * * @param string $type Type of operation to be done, this case 'rename_table' * @param array $tables List of tables to be renamed * @return boolean Return true in case of success, otherwise false * @access protected */ public function _renameTable($type, $tables) { foreach ($tables as $oldName => $newName) { $sql = 'RENAME TABLE ' . $this->db->fullTableName($oldName) . ' TO ' . $this->db->fullTableName($newName) . ';'; $this->__invokeCallbacks('beforeAction', 'rename_table', array('old_name' => $oldName, 'new_name' => $newName)); $this->db->execute($sql); $this->__invokeCallbacks('afterAction', 'rename_table', array('old_name' => $oldName, 'new_name' => $newName)); } return true; }
/** * Rename Table method * * @param string $type Type of operation to be done, this case 'rename_table' * @param array $tables List of tables to be renamed * @return boolean Return true in case of success, otherwise false * @access protected */ protected function _renameTable($type, $tables) { foreach ($tables as $oldName => $newName) { $sources = $this->db->listSources(); if (!in_array($oldName, $sources)) { throw new MigrationException($this, sprintf(__d('migrations', 'Table "%s" does not exists in database.', true), $oldName)); } else { if (in_array($newName, $sources)) { throw new MigrationException($this, sprintf(__d('migrations', 'Table "%s" already exists in database.', true), $newName)); } } $sql = 'RENAME TABLE ' . $this->db->fullTableName($oldName) . ' TO ' . $this->db->fullTableName($newName) . ';'; $this->_invokeCallbacks('beforeAction', 'rename_table', array('old_name' => $oldName, 'new_name' => $newName)); if (@$this->db->execute($sql) === false) { throw new MigrationException($this, sprintf(__d('migrations', 'SQL Error: %s', true), $this->db->error)); } $this->_invokeCallbacks('afterAction', 'rename_table', array('old_name' => $oldName, 'new_name' => $newName)); } return true; }