Update schema alter table boolean

This commit is contained in:
FusionPBX
2025-09-23 11:49:05 -06:00
committed by GitHub
parent ed83ef4de4
commit 16110ecb70

View File

@@ -641,18 +641,30 @@
//field type has changed
else {
switch ($field_type) {
case 'numeric': $using = $field_name . "::numeric";
case 'numeric':
$sql_update .= "ALTER TABLE " . $table_name . " ALTER COLUMN " . $field_name . " TYPE " . $field_type . " USING " . $field_name . "::numeric;\n";
break;
case 'timestamp':
case 'datetime': $using = $field_name . "::timestamp without time zone";
$sql_update .= "ALTER TABLE " . $table_name . " ALTER COLUMN " . $field_name . " TYPE " . $field_type . " USING " . $field_name . "::timestamp with time zone;\n";
break;
case 'timestamptz': $using = $field_name . "::timestamp with time zone";
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 'boolean': $using = $field_name . "::text::boolean";
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':
if ($db_field_type == 'numeric') {
$sql_update .= "ALTER TABLE " . $table_name . " ALTER COLUMN " . $field_name . " TYPE text USING " . $field_name . "::text;\n";
}
if ($db_field_type == 'text') {
$sql_update .= "UPDATE " . $table_name . " set " . $field_name . " = 'false' where " . $field_name . " = '';\n";
}
$sql_update .= "ALTER TABLE " . $table_name . " ALTER COLUMN " . $field_name . " TYPE " . $field_type . " USING " . $field_name . "::boolean;\n";
break;
default: unset($using);
$sql_update .= "ALTER TABLE " . $table_name . " ALTER COLUMN " . $field_name . " TYPE " . $field_type . "\n";
}
$sql_update .= "ALTER TABLE " . $table_name . " ALTER COLUMN " . $field_name . " TYPE " . $field_type . " " . ($using ? "USING " . $using : null) . ";\n";
}
}
}