Ruckusing_Adapter_PgSQL_Base::rename_table PHP Method

rename_table() public method

Also renames a table's primary key sequence if the sequence name matches the Ruckusing Migrations default.
public rename_table ( string $name, string $new_name ) : boolean
$name string the current table name
$new_name string the new table name
return boolean
    public function rename_table($name, $new_name)
    {
        if (empty($name)) {
            throw new Ruckusing_Exception("Missing original column name parameter", Ruckusing_Exception::INVALID_ARGUMENT);
        }
        if (empty($new_name)) {
            throw new Ruckusing_Exception("Missing new column name parameter", Ruckusing_Exception::INVALID_ARGUMENT);
        }
        $sql = sprintf("ALTER TABLE %s RENAME TO %s", $this->identifier($name), $this->identifier($new_name));
        $this->execute_ddl($sql);
        $pk_and_sequence_for = $this->pk_and_sequence_for($new_name);
        if (!empty($pk_and_sequence_for)) {
            list($pk, $seq) = $pk_and_sequence_for;
            if ($seq == "{$name}_{$pk}_seq") {
                $new_seq = "{$new_name}_{$pk}_seq";
                $this->execute_ddl("ALTER TABLE {$seq} RENAME TO {$new_seq}");
            }
        }
    }

Usage Example

 /**
  * test renaming table
  */
 public function test_rename_table()
 {
     $this->adapter->drop_table('users');
     $this->adapter->drop_table('users_new');
     //create it
     $table = $this->adapter->create_table('users');
     $table->column('name', 'string', array('limit' => 20));
     $table->finish();
     $this->assertEquals(true, $this->adapter->has_table('users'));
     $this->assertEquals(false, $this->adapter->has_table('users_new'));
     //rename it
     $this->adapter->rename_table('users', 'users_new');
     $this->assertEquals(false, $this->adapter->has_table('users'));
     $this->assertEquals(true, $this->adapter->has_table('users_new'));
     //clean up
     $this->adapter->drop_table('users');
     $this->adapter->drop_table('users_new');
 }
All Usage Examples Of Ruckusing_Adapter_PgSQL_Base::rename_table