feat: implement database wrapper interfaces for MSSQL and Postgres; enhance migration job processing with pre and post SQL execution
This commit is contained in:
30
internal/app/db/mssql.go
Normal file
30
internal/app/db/mssql.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type MssqlDbWrapper struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func NewMssqlDbWrapper(db *sql.DB) DbWrapper {
|
||||
return &MssqlDbWrapper{db: db}
|
||||
}
|
||||
|
||||
func (wrapper *MssqlDbWrapper) Exec(ctx context.Context, query string, args ...any) (DbWrapperResult, error) {
|
||||
result, execErr := wrapper.db.ExecContext(ctx, query, args...)
|
||||
if execErr != nil {
|
||||
return DbWrapperResult{}, execErr
|
||||
}
|
||||
|
||||
affectedRows, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return DbWrapperResult{}, err
|
||||
}
|
||||
|
||||
return DbWrapperResult{
|
||||
AffectedRows: affectedRows,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user