Doctrine_Export drivers provide an easy database portable way of altering existing database tables.
NOTE: if you only want to get the generated sql (and not execute it) use Doctrine_Export::alterTableSql()
openConnection(\$dbh);
\$a = array('add' => array('name' => array('type' => 'string', 'length' => 255)));
\$conn->export->alterTableSql('mytable', \$a);
// On mysql this method returns:
// ALTER TABLE mytable ADD COLUMN name VARCHAR(255)
?>");
?>
Doctrine_Export::alterTable() takes two parameters:
string $name
$a = array('name' => 'userlist',
'add' => array(
'quota' => array(
'type' => 'integer',
'unsigned' => 1
)
),
'remove' => array(
'file_limit' => array(),
'time_limit' => array()
),
'change' => array(
'name' => array(
'length' => '20',
'definition' => array(
'type' => 'text',
'length' => 20
)
)
),
'rename' => array(
'sex' => array(
'name' => 'gender',
'definition' => array(
'type' => 'text',
'length' => 1,
'default' => 'M'
)
)
)
);
$dbh = new PDO('dsn','username','pw');
$conn = Doctrine_Manager::getInstance()->openConnection($dbh);
$conn->export->alterTable('mytable', $a);