package migrations import ( "encoding/json" "github.com/pocketbase/pocketbase/core" m "github.com/pocketbase/pocketbase/migrations" ) func init() { m.Register(func(app core.App) error { jsonData := `{ "id": "t9lphichi5xwyeu", "created": "2024-12-14 14:25:55.563Z", "updated": "2024-12-14 14:25:55.563Z", "name": "activities", "type": "view", "system": false, "schema": [ { "system": false, "id": "zegqj8bt", "name": "date", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "mztv5od5", "name": "name", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "4hq14mc5", "name": "description", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "hbyuxehw", "name": "gpx", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "syp8ya96", "name": "author", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "rrfp5omm", "name": "photos", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "tacveduk", "name": "distance", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "ydhldat1", "name": "duration", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "9gg24ge8", "name": "elevation_gain", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "ujsn6lqc", "name": "elevation_loss", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } }, { "system": false, "id": "nvvrulvj", "name": "type", "type": "json", "required": false, "presentable": false, "unique": false, "options": { "maxSize": 1 } } ], "indexes": [], "listRule": null, "viewRule": null, "createRule": null, "updateRule": null, "deleteRule": null, "options": { "query": "SELECT id,date,name,description,gpx,author,photos,distance,duration,elevation_gain,elevation_loss, type \nFROM (\n SELECT summit_logs.id,summit_logs.date,trails.name,text as description,summit_logs.gpx,summit_logs.author,summit_logs.photos,summit_logs.distance,summit_logs.duration,summit_logs.elevation_gain,summit_logs.elevation_loss,\"summit_log\" as type \n FROM summit_logs\n LEFT JOIN trails ON summit_logs.id IN (\n SELECT value\n FROM json_each(trails.summit_logs)\n )\n UNION\n SELECT id,date,name,description,gpx,author,photos,distance,duration,elevation_gain,elevation_loss, \"trail\" as type \n FROM trails\n) ORDER BY date DESC" } }` collection := &core.Collection{} if err := json.Unmarshal([]byte(jsonData), &collection); err != nil { return err } return app.Save(collection) }, func(app core.App) error { collection, err := app.FindCollectionByNameOrId("t9lphichi5xwyeu") if err != nil { return err } return app.Delete(collection) }) }