toPgSql method
String
toPgSql(
- List<ColumnDefinition> targetColumns
)
Implementation
String toPgSql(List<ColumnDefinition> targetColumns) {
var out = '';
// Drop indexes
for (var deleteIndex in deleteIndexes) {
out += 'DROP INDEX "$deleteIndex";\n';
}
// Drop foreign keys
for (var deleteKey in deleteForeignKeys) {
out += 'ALTER TABLE "$name" DROP CONSTRAINT "$deleteKey";\n';
}
// Drop columns
for (var deleteColumn in deleteColumns) {
out += 'ALTER TABLE "$name" DROP COLUMN "$deleteColumn";\n';
}
// Add columns
for (var addColumn in addColumns) {
out +=
'ALTER TABLE "$name" ADD COLUMN ${addColumn.toPgSqlFragment(tableName: name)};\n';
}
// Modify columns
for (var alterColumn in modifyColumns) {
out += alterColumn.toPgSql(
tableName: name,
columnDefinition: targetColumns.firstWhere(
(c) => c.name == alterColumn.columnName,
),
);
}
// Add indexes
for (var addIndex in addIndexes) {
out += addIndex.toPgSql(tableName: name);
}
return out;
}