$uniques = array();
$primary = array();
$indices = array();
+ $onupdate = array();
$sql = "CREATE TABLE $name (\n";
}
if (count($primary) > 0) { // it really should be...
- $sql .= ",\n primary key (" . implode(',', $primary) . ")";
- }
-
-
-
- foreach ($indices as $i) {
- $sql .= ",\nindex {$name}_{$i}_idx ($i)";
+ $sql .= ",\n PRIMARY KEY (" . implode(',', $primary) . ")";
}
$sql .= "); ";
foreach ($uniques as $u) {
$sql .= "\n CREATE index {$name}_{$u}_idx ON {$name} ($u); ";
}
+
+ foreach ($indices as $i) {
+ $sql .= "CREATE index {$name}_{$i}_idx ON {$name} ($i)";
+ }
$res = $this->conn->query($sql);
if (PEAR::isError($res)) {
public function modifyColumn($table, $columndef)
{
- $sql = "ALTER TABLE $table MODIFY COLUMN " .
+ $sql = "ALTER TABLE $table ALTER COLUMN TYPE " .
$this->_columnSql($columndef);
$res = $this->conn->query($sql);
foreach ($tomod as $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);
- echo "<p>$sql</p>";
$res = $this->conn->query($sql);
if (PEAR::isError($res)) {
return $sql;
}
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)) {
$sql .= ($cd->nullable) ? "null " : "not null ";
}
- if (!empty($cd->extra)) {
- $sql .= "{$cd->extra} ";
- }
+// if (!empty($cd->extra)) {
+// $sql .= "{$cd->extra} ";
+// }
return $sql;
}