toSql method
Generate column definition SQL
Implementation
String toSql(DatabaseType dbType) {
final parts = <String>[name];
// Type with auto-increment handling
if (autoIncrement || primaryKey) {
switch (dbType) {
case DatabaseType.postgresql:
parts.add(type == 'INTEGER' ? 'SERIAL' : 'BIGSERIAL');
case DatabaseType.mysql:
parts.add('$type AUTO_INCREMENT');
case DatabaseType.sqlite:
parts.add('INTEGER');
}
} else {
parts.add(type);
}
// Primary key (for single column PK)
if (primaryKey) {
parts.add('PRIMARY KEY');
}
// Nullable
if (!nullable && !primaryKey) {
parts.add('NOT NULL');
}
// Unique
if (unique && !primaryKey) {
parts.add('UNIQUE');
}
// Default value
if (defaultValue != null) {
parts.add('DEFAULT $defaultValue');
}
return parts.join(' ');
}