mirror of
https://github.com/Flomp/wanderer.git
synced 2025-12-21 12:59:58 -06:00
180 lines
3.9 KiB
Go
180 lines
3.9 KiB
Go
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)
|
|
})
|
|
}
|