mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-01 19:47:37 +03:00
43 lines
929 B
Go
43 lines
929 B
Go
package migrations
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/navidrome/navidrome/consts"
|
|
"github.com/pressly/goose/v3"
|
|
)
|
|
|
|
func init() {
|
|
goose.AddMigrationContext(upAddDefaultTranscodings, downAddDefaultTranscodings)
|
|
}
|
|
|
|
func upAddDefaultTranscodings(_ context.Context, tx *sql.Tx) error {
|
|
row := tx.QueryRow("SELECT COUNT(*) FROM transcoding")
|
|
var count int
|
|
err := row.Scan(&count)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if count > 0 {
|
|
return nil
|
|
}
|
|
|
|
stmt, err := tx.Prepare("insert into transcoding (id, name, target_format, default_bit_rate, command) values (?, ?, ?, ?, ?)")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, t := range consts.DefaultTranscodings {
|
|
_, err := stmt.Exec(uuid.NewString(), t.Name, t.TargetFormat, t.DefaultBitRate, t.Command)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func downAddDefaultTranscodings(_ context.Context, tx *sql.Tx) error {
|
|
return nil
|
|
}
|