+general tables

This commit is contained in:
Simon Martens
2026-01-12 15:16:11 +01:00
parent 925f22607b
commit 696f7fe087
9 changed files with 486 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
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)
})
}