mirror of https://github.com/velour/catbase.git
45 lines
860 B
Go
45 lines
860 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"database/sql"
|
||
|
"github.com/jmoiron/sqlx"
|
||
|
bh "github.com/timshannon/bolthold"
|
||
|
counter2 "github.com/velour/catbase/plugins/counter"
|
||
|
"log"
|
||
|
)
|
||
|
|
||
|
type ItemSQL struct {
|
||
|
counter2.Item
|
||
|
|
||
|
UserID sql.NullString
|
||
|
}
|
||
|
|
||
|
func migrateCounter(db *sqlx.DB, store *bh.Store) error {
|
||
|
all := []ItemSQL{}
|
||
|
log.Printf("Migrating %T", all)
|
||
|
if err := db.Select(&all, `select * from counter`); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
for _, i := range all {
|
||
|
it := i.Item
|
||
|
if i.UserID.Valid {
|
||
|
it.UserID = i.UserID.String
|
||
|
}
|
||
|
if err := store.Insert(i.ID, it); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
|
||
|
aliases := []counter2.Alias{}
|
||
|
log.Printf("Migrating %T", aliases)
|
||
|
if err := db.Select(&aliases, `select * from counter_alias`); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
for _, i := range all {
|
||
|
if err := store.Insert(i.ID, i); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|