mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2026-02-05 11:05:31 +00:00
+general tables
This commit is contained in:
56
migrations/1747983000_migrate_abkuerzungen.go
Normal file
56
migrations/1747983000_migrate_abkuerzungen.go
Normal 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)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user