mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 13:46:00 +00:00
clickhouse: rename & change column
This commit is contained in:
@@ -5,6 +5,24 @@ class Dumper extends SqlDumper {
|
||||
this.put('^alter ^table %f ^modify ', table);
|
||||
this.put(formatString, optionValue);
|
||||
}
|
||||
|
||||
changeColumn(oldcol, newcol, constraints) {
|
||||
if (oldcol.columnName != newcol.columnName) {
|
||||
this.putCmd('^alter ^table %f ^rename ^column %i ^to %i', oldcol, oldcol.columnName, newcol.columnName);
|
||||
}
|
||||
|
||||
this.put('^alter ^table %f ^modify ^column %i ', newcol, newcol.columnName);
|
||||
this.columnDefinition(newcol);
|
||||
this.endCommand();
|
||||
}
|
||||
|
||||
columnType(dataType) {
|
||||
this.putRaw(dataType);
|
||||
}
|
||||
|
||||
renameColumn(column, newcol) {
|
||||
this.putCmd('^alter ^table %f ^rename ^column %i ^to %i', column, column.columnName, newcol);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Dumper;
|
||||
|
||||
@@ -50,6 +50,41 @@ const clickhouseEngines = [
|
||||
'DeltaLake',
|
||||
];
|
||||
|
||||
const clickhouseDataTypes = [
|
||||
'Int8',
|
||||
'Int16',
|
||||
'Int32',
|
||||
'Int64',
|
||||
'UInt8',
|
||||
'UInt16',
|
||||
'UInt32',
|
||||
'UInt64',
|
||||
'Float32',
|
||||
'Float64',
|
||||
'Decimal',
|
||||
'String',
|
||||
'FixedString',
|
||||
'UUID',
|
||||
'Date',
|
||||
'DateTime',
|
||||
'DateTime64',
|
||||
"DateTime('UTC')",
|
||||
'Date32',
|
||||
'Enum8',
|
||||
'Enum16',
|
||||
'Array',
|
||||
'Tuple',
|
||||
'Nullable',
|
||||
'LowCardinality',
|
||||
'Map',
|
||||
'JSON',
|
||||
'IPv4',
|
||||
'IPv6',
|
||||
'Nested',
|
||||
'AggregateFunction',
|
||||
'SimpleAggregateFunction',
|
||||
];
|
||||
|
||||
/** @type {import('dbgate-types').SqlDialect} */
|
||||
const dialect = {
|
||||
limitSelect: true,
|
||||
@@ -93,6 +128,8 @@ const dialect = {
|
||||
},
|
||||
];
|
||||
},
|
||||
|
||||
predefinedDataTypes: clickhouseDataTypes,
|
||||
};
|
||||
|
||||
/** @type {import('dbgate-types').EngineDriver} */
|
||||
|
||||
Reference in New Issue
Block a user