mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 12:35:59 +00:00
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
const { SqlDumper } = global.DBGATE_PACKAGES['dbgate-tools'];
|
|
|
|
class Dumper extends SqlDumper {
|
|
setTableOptionCore(table, optionName, optionValue, formatString) {
|
|
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);
|
|
if (oldcol.defaultValue != null && newcol.defaultValue == null) {
|
|
this.put(' ^remove ^default ');
|
|
}
|
|
this.endCommand();
|
|
}
|
|
|
|
columnType(dataType) {
|
|
this.putRaw(dataType || this.dialect.fallbackDataType);
|
|
}
|
|
|
|
renameColumn(column, newcol) {
|
|
this.putCmd('^alter ^table %f ^rename ^column %i ^to %i', column, column.columnName, newcol);
|
|
}
|
|
|
|
renameTable(obj, newName) {
|
|
this.putCmd('^rename ^table %f ^to %i', obj, newName);
|
|
}
|
|
|
|
tableOptions(table) {
|
|
super.tableOptions(table);
|
|
if (table.sortingKey) {
|
|
this.put(
|
|
'&n^order ^by (%,i)',
|
|
table.sortingKey.columns.map((x) => x.columnName)
|
|
);
|
|
}
|
|
}
|
|
|
|
autoIncrement() {}
|
|
}
|
|
|
|
module.exports = Dumper;
|