feat(migration): add support for altering column nullability

* Implement ExecuteAlterColumnNullability function
* Create alter_column_nullability template
* Add test for altering column nullability behavior
This commit is contained in:
Hein
2026-08-14 14:10:21 +02:00
parent d44945b475
commit 97139723c9
4 changed files with 86 additions and 0 deletions
+18
View File
@@ -116,6 +116,14 @@ type AlterColumnDefaultData struct {
DefaultValue string
}
// AlterColumnNullabilityData contains data for alter column nullability template
type AlterColumnNullabilityData struct {
SchemaName string
TableName string
ColumnName string
NotNull bool
}
// CreatePrimaryKeyData contains data for create primary key template
type CreatePrimaryKeyData struct {
SchemaName string
@@ -331,6 +339,16 @@ func (te *TemplateExecutor) ExecuteAlterColumnDefault(data AlterColumnDefaultDat
return buf.String(), nil
}
// ExecuteAlterColumnNullability executes the alter column nullability template
func (te *TemplateExecutor) ExecuteAlterColumnNullability(data AlterColumnNullabilityData) (string, error) {
var buf bytes.Buffer
err := te.templates.ExecuteTemplate(&buf, "alter_column_nullability.tmpl", data)
if err != nil {
return "", fmt.Errorf("failed to execute alter_column_nullability template: %w", err)
}
return buf.String(), nil
}
// ExecuteCreatePrimaryKey executes the create primary key template
func (te *TemplateExecutor) ExecuteCreatePrimaryKey(data CreatePrimaryKeyData) (string, error) {
var buf bytes.Buffer