|
@@ -689,40 +689,24 @@ if (!class_exists('schema')) {
|
|
|
$sql_update .= "AS uuid);\n";
|
|
|
}
|
|
|
else {
|
|
|
- if ($db_field_type == "integer" && strtolower($field_type) == "serial") {
|
|
|
- //field type has not changed
|
|
|
- }
|
|
|
- else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "timestamp") {
|
|
|
- //field type has not changed
|
|
|
- }
|
|
|
- else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "datetime") {
|
|
|
- //field type has not changed
|
|
|
- }
|
|
|
- else if ($db_field_type == "timestamp with time zone" && strtolower($field_type) == "timestamptz") {
|
|
|
- //field type has not changed
|
|
|
- }
|
|
|
- else if ($db_field_type == "integer" && strtolower($field_type) == "numeric") {
|
|
|
- //field type has not changed
|
|
|
- }
|
|
|
- else if ($db_field_type == "character" && strtolower($field_type) == "char") {
|
|
|
- //field type has not changed
|
|
|
- }
|
|
|
+ //field type has not changed
|
|
|
+ if ($db_field_type == "integer" && strtolower($field_type) == "serial") { }
|
|
|
+ else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "timestamp") { }
|
|
|
+ else if ($db_field_type == "timestamp without time zone" && strtolower($field_type) == "datetime") { }
|
|
|
+ else if ($db_field_type == "timestamp with time zone" && strtolower($field_type) == "timestamptz") { }
|
|
|
+ else if ($db_field_type == "integer" && strtolower($field_type) == "numeric") { }
|
|
|
+ else if ($db_field_type == "character" && strtolower($field_type) == "char") { }
|
|
|
+ //field type has changed
|
|
|
else {
|
|
|
switch ($field_type) {
|
|
|
+ case 'numeric': $using = $field_name."::numeric"; break;
|
|
|
case 'timestamp':
|
|
|
- case 'datetime':
|
|
|
- $sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." USING ".$field_name."::timestamp without time zone;\n";
|
|
|
- break;
|
|
|
- case 'timestamptz':
|
|
|
- $sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." USING ".$field_name."::timestamp with time zone;\n";
|
|
|
- break;
|
|
|
- case 'boolean':
|
|
|
- $sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." USING ".$field_name."::boolean;\n";
|
|
|
- break;
|
|
|
- default:
|
|
|
- //$sql_update .= "-- $db_type, $db_name, $table_name, $field_name ".db_column_data_type ($db_type, $db_name, $table_name, $field_name)."<br>";
|
|
|
- $sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type.";\n";
|
|
|
+ case 'datetime': $using = $field_name."::timestamp without time zone"; break;
|
|
|
+ case 'timestamptz': $using = $field_name."::timestamp with time zone"; break;
|
|
|
+ case 'boolean': $using = $field_name."::boolean"; break;
|
|
|
+ default: unset($using);
|
|
|
}
|
|
|
+ $sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type." ".($using ? "USING ".$using : null).";\n";
|
|
|
}
|
|
|
}
|
|
|
}
|