mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Only set video algorithm after migration 12 (#2946)
This commit is contained in:
60
pkg/sqlite/migrations/12_postmigrate.go
Normal file
60
pkg/sqlite/migrations/12_postmigrate.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"github.com/stashapp/stash/internal/manager/config"
|
||||
"github.com/stashapp/stash/pkg/logger"
|
||||
"github.com/stashapp/stash/pkg/models"
|
||||
"github.com/stashapp/stash/pkg/sqlite"
|
||||
)
|
||||
|
||||
func post12(ctx context.Context, db *sqlx.DB) error {
|
||||
m := schema12Migrator{
|
||||
migrator: migrator{
|
||||
db: db,
|
||||
},
|
||||
}
|
||||
|
||||
return m.migrateConfig(ctx)
|
||||
}
|
||||
|
||||
type schema12Migrator struct {
|
||||
migrator
|
||||
}
|
||||
|
||||
func (m *schema12Migrator) migrateConfig(ctx context.Context) error {
|
||||
// if there are no scene files in the database, then default the
|
||||
// VideoFileNamingAlgorithm config setting to oshash and calculateMD5 to
|
||||
// false, otherwise set them to true for backwards compatibility purposes
|
||||
var count int
|
||||
if err := m.withTxn(ctx, func(tx *sqlx.Tx) error {
|
||||
query := "SELECT COUNT(*) from `scenes`"
|
||||
|
||||
return tx.Get(&count, query)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
usingMD5 := count != 0
|
||||
defaultAlgorithm := models.HashAlgorithmOshash
|
||||
if usingMD5 {
|
||||
logger.Infof("Defaulting video file naming algorithm to %s", models.HashAlgorithmMd5)
|
||||
defaultAlgorithm = models.HashAlgorithmMd5
|
||||
}
|
||||
|
||||
c := config.GetInstance()
|
||||
|
||||
c.SetDefault(config.VideoFileNamingAlgorithm, defaultAlgorithm)
|
||||
c.SetDefault(config.CalculateMD5, usingMD5)
|
||||
if err := c.Write(); err != nil {
|
||||
logger.Errorf("Error while writing configuration file: %s", err.Error())
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
sqlite.RegisterPostMigration(12, post12)
|
||||
}
|
||||
Reference in New Issue
Block a user