mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2026-02-04 02:25:30 +00:00
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package migrations
|
|
|
|
import (
|
|
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
|
"github.com/pocketbase/pocketbase/core"
|
|
m "github.com/pocketbase/pocketbase/migrations"
|
|
)
|
|
|
|
func init() {
|
|
m.Register(func(app core.App) error {
|
|
// Find source collection
|
|
abkColl, err := app.FindCollectionByNameOrId("page_benutzerhinweise_abkuerzungen")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// Query all abbreviations
|
|
var records []*core.Record
|
|
err = app.RecordQuery(abkColl.Name).All(&records)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// Convert to JSON map
|
|
abkMap := make(map[string]string)
|
|
for _, r := range records {
|
|
abkMap[r.GetString("Abkuerzung")] = r.GetString("Bedeutung")
|
|
}
|
|
|
|
// Find data collection
|
|
dataColl, err := app.FindCollectionByNameOrId(dbmodels.DATA_TABLE)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// Create new record in data table
|
|
record := core.NewRecord(dataColl)
|
|
record.Set(dbmodels.KEY_FIELD, "abkuerzungen")
|
|
record.Set(dbmodels.VALUE_FIELD, abkMap)
|
|
|
|
return app.Save(record)
|
|
}, func(app core.App) error {
|
|
// Rollback: delete from data table
|
|
dataColl, err := app.FindCollectionByNameOrId(dbmodels.DATA_TABLE)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
record, err := app.FindFirstRecordByFilter(dataColl.Name, dbmodels.KEY_FIELD+" = 'abkuerzungen'")
|
|
if err != nil {
|
|
return nil // Already deleted
|
|
}
|
|
|
|
return app.Delete(record)
|
|
})
|
|
}
|