コード例 #1
0
ファイル: CakeMigration.php プロジェクト: kiang/olc_baker
 /**
  * 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;
 }
コード例 #2
0
 /**
  * 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;
 }