Exemplo n.º 1
0
 /**
  * Rename this table and all of its change-tracker entries.
  * @param string $new_name
  */
 public function rename($new_name)
 {
     if ($this->getDatabase()->getTable($new_name)) {
         throw new \Exception("Table '{$new_name}' already exists");
     }
     $old_name = $this->getName();
     $this->getDatabase()->query("RENAME TABLE `{$old_name}` TO `{$new_name}`;");
     $this->getDatabase()->reset();
     $new = $this->getDatabase()->getTable($new_name, false);
     if (!$new) {
         throw new \Exception("Table '{$old_name}' was not renamed to '{$new_name}'");
     }
     $this->name = $new->getName();
     $this->getDatabase()->query("UPDATE `" . ChangeTracker::changes_name() . "`" . " SET `table_name` = '{$new_name}' " . " WHERE `table_name` = '{$old_name}';");
 }