mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 03:06:00 +00:00
drop unique column works
This commit is contained in:
@@ -244,6 +244,8 @@ export class AlterPlan {
|
||||
if (cnt.constraintType == 'primaryKey') return this.dialect.createPrimaryKey;
|
||||
if (cnt.constraintType == 'foreignKey') return this.dialect.createForeignKey;
|
||||
if (cnt.constraintType == 'index') return this.dialect.createIndex;
|
||||
if (cnt.constraintType == 'unique') return this.dialect.createUnique;
|
||||
if (cnt.constraintType == 'check') return this.dialect.createCheck;
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -251,6 +253,8 @@ export class AlterPlan {
|
||||
if (cnt.constraintType == 'primaryKey') return this.dialect.dropPrimaryKey;
|
||||
if (cnt.constraintType == 'foreignKey') return this.dialect.dropForeignKey;
|
||||
if (cnt.constraintType == 'index') return this.dialect.dropIndex;
|
||||
if (cnt.constraintType == 'unique') return this.dialect.dropUnique;
|
||||
if (cnt.constraintType == 'check') return this.dialect.dropCheck;
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -364,9 +368,11 @@ export function runAlterOperation(op: AlterOperation, processor: AlterProcessor)
|
||||
const newTable = _.cloneDeep(op.table);
|
||||
const newDb = DatabaseAnalyser.createEmptyStructure();
|
||||
newDb.tables.push(newTable);
|
||||
// console.log('////////////////////////////newTable1', newTable);
|
||||
op.operations.forEach(child => runAlterOperation(child, new DatabaseInfoAlterProcessor(newDb)));
|
||||
// console.log('////////////////////////////op.operations', op.operations);
|
||||
// console.log('////////////////////////////op.table', op.table);
|
||||
// console.log('////////////////////////////newTable', newTable);
|
||||
// console.log('////////////////////////////newTable2', newTable);
|
||||
processor.recreateTable(op.table, newTable);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
import { ColumnInfo, ConstraintInfo, DatabaseInfo, ForeignKeyInfo, PrimaryKeyInfo, TableInfo } from '../../types';
|
||||
import {
|
||||
ColumnInfo,
|
||||
ConstraintInfo,
|
||||
DatabaseInfo,
|
||||
ForeignKeyInfo,
|
||||
PrimaryKeyInfo,
|
||||
TableInfo,
|
||||
IndexInfo,
|
||||
CheckInfo,
|
||||
UniqueInfo,
|
||||
} from '../../types';
|
||||
|
||||
export class DatabaseInfoAlterProcessor {
|
||||
constructor(public db: DatabaseInfo) {}
|
||||
@@ -35,6 +45,15 @@ export class DatabaseInfoAlterProcessor {
|
||||
case 'foreignKey':
|
||||
table.foreignKeys.push(constraint as ForeignKeyInfo);
|
||||
break;
|
||||
case 'index':
|
||||
table.indexes.push(constraint as IndexInfo);
|
||||
break;
|
||||
case 'unique':
|
||||
table.uniques.push(constraint as UniqueInfo);
|
||||
break;
|
||||
case 'check':
|
||||
table.checks.push(constraint as CheckInfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +72,15 @@ export class DatabaseInfoAlterProcessor {
|
||||
case 'foreignKey':
|
||||
table.foreignKeys = table.foreignKeys.filter(x => x.constraintName != constraint.constraintName);
|
||||
break;
|
||||
case 'index':
|
||||
table.indexes = table.indexes.filter(x => x.constraintName != constraint.constraintName);
|
||||
break;
|
||||
case 'unique':
|
||||
table.uniques = table.uniques.filter(x => x.constraintName != constraint.constraintName);
|
||||
break;
|
||||
case 'check':
|
||||
table.checks = table.checks.filter(x => x.constraintName != constraint.constraintName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user