29 lines
718 B
Go
29 lines
718 B
Go
|
|
package migrations
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"database/sql"
|
||
|
|
|
||
|
|
"github.com/pressly/goose/v3"
|
||
|
|
)
|
||
|
|
|
||
|
|
func init() {
|
||
|
|
goose.AddMigrationContext(upFixProbeDataNull, downFixProbeDataNull)
|
||
|
|
}
|
||
|
|
|
||
|
|
func upFixProbeDataNull(_ context.Context, tx *sql.Tx) error {
|
||
|
|
// Recreate probe_data column as NOT NULL with empty string default.
|
||
|
|
// The previous migration created it with DEFAULT NULL, which causes
|
||
|
|
// scan errors when reading into Go string fields.
|
||
|
|
_, err := tx.Exec(`ALTER TABLE media_file DROP COLUMN probe_data`)
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
_, err = tx.Exec(`ALTER TABLE media_file ADD COLUMN probe_data TEXT DEFAULT '' NOT NULL`)
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
func downFixProbeDataNull(_ context.Context, tx *sql.Tx) error {
|
||
|
|
return nil
|
||
|
|
}
|