fix the column modify on stuff for postgres. change serial to bigserial

This commit is contained in:
Brenda Wallace 2010-05-17 13:50:37 +12:00
parent a968cc6999
commit 6f19830c9a

View File

@ -143,6 +143,7 @@ class PgsqlSchema extends Schema
$uniques = array(); $uniques = array();
$primary = array(); $primary = array();
$indices = array(); $indices = array();
$onupdate = array();
$sql = "CREATE TABLE $name (\n"; $sql = "CREATE TABLE $name (\n";
@ -321,7 +322,7 @@ class PgsqlSchema extends Schema
public function modifyColumn($table, $columndef) public function modifyColumn($table, $columndef)
{ {
$sql = "ALTER TABLE $table MODIFY COLUMN " . $sql = "ALTER TABLE $table ALTER COLUMN TYPE " .
$this->_columnSql($columndef); $this->_columnSql($columndef);
$res = $this->conn->query($sql); $res = $this->conn->query($sql);
@ -428,7 +429,9 @@ class PgsqlSchema extends Schema
foreach ($tomod as $columnName) { foreach ($tomod as $columnName) {
$cd = $this->_byName($columns, $columnName); $cd = $this->_byName($columns, $columnName);
$phrase[] = 'MODIFY COLUMN ' . $this->_columnSql($cd); /* brute force */
$phrase[] = 'DROP COLUMN ' . $columnName;
$phrase[] = 'ADD COLUMN ' . $this->_columnSql($cd);
} }
$sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase); $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase);
@ -505,7 +508,7 @@ class PgsqlSchema extends Schema
return $sql; return $sql;
} }
if (!empty($cd->auto_increment)) { if (!empty($cd->auto_increment)) {
$type = 'serial'; $type = "bigserial"; // FIXME: creates the wrong name for the sequence for some internal sequence-lookup function, so better fix this to do the real 'create sequence' dance.
} }
if (!empty($cd->size)) { if (!empty($cd->size)) {