diff --git a/pkg/migrations/op_add_column.go b/pkg/migrations/op_add_column.go index 6708e1467..d24f8dfc5 100644 --- a/pkg/migrations/op_add_column.go +++ b/pkg/migrations/op_add_column.go @@ -32,13 +32,14 @@ func (o *OpAddColumn) Start(ctx context.Context, conn *sql.DB, schemaName, state } if o.Up != nil { - err := createTrigger(ctx, conn, s, triggerConfig{ + err := createTrigger(ctx, conn, triggerConfig{ + Name: TriggerName(o.Table, o.Column.Name), Direction: TriggerDirectionUp, + Columns: s.GetTable(o.Table).Columns, SchemaName: schemaName, - StateSchema: stateSchema, - Table: o.Table, - Column: o.Column.Name, + TableName: o.Table, PhysicalColumn: TemporaryName(o.Column.Name), + StateSchema: stateSchema, SQL: *o.Up, }) if err != nil { diff --git a/pkg/migrations/op_drop_column.go b/pkg/migrations/op_drop_column.go index 1fa880e36..eb1e70734 100644 --- a/pkg/migrations/op_drop_column.go +++ b/pkg/migrations/op_drop_column.go @@ -19,13 +19,14 @@ var _ Operation = (*OpDropColumn)(nil) func (o *OpDropColumn) Start(ctx context.Context, conn *sql.DB, schemaName string, stateSchema string, s *schema.Schema) error { if o.Down != nil { - err := createTrigger(ctx, conn, s, triggerConfig{ + err := createTrigger(ctx, conn, triggerConfig{ + Name: TriggerName(o.Table, o.Column), Direction: TriggerDirectionDown, + Columns: s.GetTable(o.Table).Columns, SchemaName: schemaName, - StateSchema: stateSchema, - Table: o.Table, - Column: o.Column, + TableName: o.Table, PhysicalColumn: o.Column, + StateSchema: stateSchema, SQL: *o.Down, }) if err != nil { diff --git a/pkg/migrations/op_set_notnull.go b/pkg/migrations/op_set_notnull.go index 3eaaa70d6..e08e8fce4 100644 --- a/pkg/migrations/op_set_notnull.go +++ b/pkg/migrations/op_set_notnull.go @@ -32,16 +32,17 @@ func (o *OpSetNotNull) Start(ctx context.Context, conn *sql.DB, schemaName strin } // Add a trigger to copy values from the old column to the new, rewriting NULL values using the `up` SQL. - err := createTrigger(ctx, conn, s, triggerConfig{ + err := createTrigger(ctx, conn, triggerConfig{ + Name: TriggerName(o.Table, o.Column), Direction: TriggerDirectionUp, + Columns: table.Columns, SchemaName: schemaName, - StateSchema: stateSchema, - Table: o.Table, - Column: o.Column, + TableName: o.Table, PhysicalColumn: TemporaryName(o.Column), + StateSchema: stateSchema, SQL: *o.Up, TestExpr: fmt.Sprintf("NEW.%s IS NULL", pq.QuoteIdentifier(o.Column)), - ElseExpr: fmt.Sprintf("NEW.%s = NEW.%s;", + ElseExpr: fmt.Sprintf("NEW.%s = NEW.%s", pq.QuoteIdentifier(TemporaryName(o.Column)), pq.QuoteIdentifier(o.Column)), }) @@ -55,13 +56,14 @@ func (o *OpSetNotNull) Start(ctx context.Context, conn *sql.DB, schemaName strin } // Add a trigger to copy values from the new column to the old. - err = createTrigger(ctx, conn, s, triggerConfig{ + err = createTrigger(ctx, conn, triggerConfig{ + Name: TriggerName(o.Table, TemporaryName(o.Column)), Direction: TriggerDirectionDown, + Columns: table.Columns, SchemaName: schemaName, - StateSchema: stateSchema, - Table: o.Table, - Column: TemporaryName(o.Column), + TableName: o.Table, PhysicalColumn: o.Column, + StateSchema: stateSchema, SQL: fmt.Sprintf("NEW.%s", pq.QuoteIdentifier(TemporaryName(o.Column))), }) if err != nil {