mirror of
https://github.com/simon-ding/polaris.git
synced 2026-02-06 23:21:00 +08:00
47 lines
971 B
Go
47 lines
971 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"polaris/log"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func (c *client) migrate() error {
|
|
// Run the auto migration tool.
|
|
if err := c.ent.Schema.Create(context.Background()); err != nil {
|
|
return errors.Wrap(err, "failed creating schema resources")
|
|
}
|
|
|
|
if err := c.migrateIndexerSetting(); err != nil {
|
|
return errors.Wrap(err, "migrate indexer setting")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (c *client) migrateIndexerSetting() error {
|
|
indexers := c.GetAllIndexers()
|
|
for _, in := range indexers {
|
|
|
|
if in.Settings == "" {
|
|
continue
|
|
}
|
|
if in.APIKey != "" && in.URL != "" {
|
|
continue
|
|
}
|
|
var setting TorznabSetting
|
|
err := json.Unmarshal([]byte(in.Settings), &setting)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
in.APIKey = setting.ApiKey
|
|
in.URL = setting.URL
|
|
if err := c.SaveIndexer(in); err != nil {
|
|
return errors.Wrap(err, "save indexer")
|
|
}
|
|
log.Infof("success migrate indexer setting field: %s", in.Name)
|
|
}
|
|
return nil
|
|
}
|