666 lines
15 KiB
Go
666 lines
15 KiB
Go
package migrations
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/pocketbase/dbx"
|
|
"github.com/pocketbase/pocketbase/daos"
|
|
m "github.com/pocketbase/pocketbase/migrations"
|
|
"github.com/pocketbase/pocketbase/models"
|
|
)
|
|
|
|
func init() {
|
|
m.Register(func(db dbx.Builder) error {
|
|
jsonData := `[
|
|
{
|
|
"id": "_pb_users_auth_",
|
|
"created": "2024-01-26 15:05:23.262Z",
|
|
"updated": "2024-02-29 16:52:40.743Z",
|
|
"name": "users",
|
|
"type": "auth",
|
|
"system": false,
|
|
"schema": [
|
|
{
|
|
"system": false,
|
|
"id": "dlzhxcn2",
|
|
"name": "token",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "users_avatar",
|
|
"name": "avatar",
|
|
"type": "file",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"mimeTypes": [
|
|
"image/jpeg",
|
|
"image/png",
|
|
"image/svg+xml",
|
|
"image/gif",
|
|
"image/webp"
|
|
],
|
|
"thumbs": null,
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"protected": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "wjofulpg",
|
|
"name": "unit",
|
|
"type": "select",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"maxSelect": 1,
|
|
"values": [
|
|
"metric",
|
|
"imperial"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "t1wlsqyp",
|
|
"name": "language",
|
|
"type": "select",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"maxSelect": 1,
|
|
"values": [
|
|
"en",
|
|
"de"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "wosrk4ue",
|
|
"name": "location",
|
|
"type": "json",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"maxSize": 2000000
|
|
}
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": "id = @request.auth.id",
|
|
"viewRule": "id = @request.auth.id",
|
|
"createRule": "",
|
|
"updateRule": "id = @request.auth.id",
|
|
"deleteRule": "id = @request.auth.id",
|
|
"options": {
|
|
"allowEmailAuth": true,
|
|
"allowOAuth2Auth": true,
|
|
"allowUsernameAuth": true,
|
|
"exceptEmailDomains": null,
|
|
"manageRule": null,
|
|
"minPasswordLength": 8,
|
|
"onlyEmailDomains": null,
|
|
"onlyVerified": false,
|
|
"requireEmail": false
|
|
}
|
|
},
|
|
{
|
|
"id": "e864strfxo14pm4",
|
|
"created": "2024-01-26 18:46:35.843Z",
|
|
"updated": "2024-02-23 12:47:30.327Z",
|
|
"name": "trails",
|
|
"type": "base",
|
|
"system": false,
|
|
"schema": [
|
|
{
|
|
"system": false,
|
|
"id": "wquvuytd",
|
|
"name": "name",
|
|
"type": "text",
|
|
"required": true,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "6kkucam1",
|
|
"name": "description",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "8x74ba26",
|
|
"name": "location",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "ehrmydva",
|
|
"name": "public",
|
|
"type": "bool",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "epgmtyxy",
|
|
"name": "distance",
|
|
"type": "number",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": 0,
|
|
"max": null,
|
|
"noDecimal": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "5wxdt3aj",
|
|
"name": "elevation_gain",
|
|
"type": "number",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"noDecimal": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "ukr9rqz4",
|
|
"name": "duration",
|
|
"type": "number",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": 0,
|
|
"max": null,
|
|
"noDecimal": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "eqeqja1s",
|
|
"name": "lat",
|
|
"type": "number",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"noDecimal": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "y6dbfyw6",
|
|
"name": "lon",
|
|
"type": "number",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"noDecimal": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "mcqce8l9",
|
|
"name": "thumbnail",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "aqbpyawe",
|
|
"name": "photos",
|
|
"type": "file",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"mimeTypes": [
|
|
"image/jpeg",
|
|
"image/vnd.mozilla.apng",
|
|
"image/png",
|
|
"image/webp",
|
|
"image/svg+xml"
|
|
],
|
|
"thumbs": [],
|
|
"maxSelect": 99,
|
|
"maxSize": 5242880,
|
|
"protected": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "k8xdrsyv",
|
|
"name": "gpx",
|
|
"type": "file",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"mimeTypes": [],
|
|
"thumbs": [],
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"protected": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "b49obm5u",
|
|
"name": "category",
|
|
"type": "relation",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"collectionId": "kjxvi8asj2igqwf",
|
|
"cascadeDelete": false,
|
|
"minSelect": null,
|
|
"maxSelect": 1,
|
|
"displayFields": null
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "1utgul91",
|
|
"name": "author",
|
|
"type": "relation",
|
|
"required": true,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"collectionId": "_pb_users_auth_",
|
|
"cascadeDelete": true,
|
|
"minSelect": null,
|
|
"maxSelect": 1,
|
|
"displayFields": null
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "e1lwowvd",
|
|
"name": "summit_logs",
|
|
"type": "relation",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"collectionId": "dd2l9a4vxpy2ni8",
|
|
"cascadeDelete": false,
|
|
"minSelect": null,
|
|
"maxSelect": null,
|
|
"displayFields": null
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "ppq2sist",
|
|
"name": "waypoints",
|
|
"type": "relation",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"collectionId": "goeo2ubp103rzp9",
|
|
"cascadeDelete": false,
|
|
"minSelect": null,
|
|
"maxSelect": null,
|
|
"displayFields": null
|
|
}
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": "author = @request.auth.id || public = true",
|
|
"viewRule": "author = @request.auth.id || public = true",
|
|
"createRule": "@request.auth.id != \"\" && (@request.data.author = @request.auth.id)",
|
|
"updateRule": "author = @request.auth.id ",
|
|
"deleteRule": "author = @request.auth.id ",
|
|
"options": {}
|
|
},
|
|
{
|
|
"id": "kjxvi8asj2igqwf",
|
|
"created": "2024-01-26 18:47:30.797Z",
|
|
"updated": "2024-01-27 09:38:36.240Z",
|
|
"name": "categories",
|
|
"type": "base",
|
|
"system": false,
|
|
"schema": [
|
|
{
|
|
"system": false,
|
|
"id": "38tbd8u4",
|
|
"name": "name",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "64dsnxtb",
|
|
"name": "img",
|
|
"type": "file",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"mimeTypes": [],
|
|
"thumbs": [],
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"protected": false
|
|
}
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": "",
|
|
"viewRule": "",
|
|
"createRule": null,
|
|
"updateRule": null,
|
|
"deleteRule": null,
|
|
"options": {}
|
|
},
|
|
{
|
|
"id": "goeo2ubp103rzp9",
|
|
"created": "2024-01-26 18:50:13.695Z",
|
|
"updated": "2024-02-04 11:49:30.732Z",
|
|
"name": "waypoints",
|
|
"type": "base",
|
|
"system": false,
|
|
"schema": [
|
|
{
|
|
"system": false,
|
|
"id": "2yegzjtk",
|
|
"name": "name",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "3xtcjtxv",
|
|
"name": "description",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "ygotgxzy",
|
|
"name": "lat",
|
|
"type": "number",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"noDecimal": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "q0ygnxd2",
|
|
"name": "lon",
|
|
"type": "number",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"noDecimal": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "rnjgm2tk",
|
|
"name": "icon",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": "@request.auth.id != \"\" && @collection.trails.waypoints.id ?= id && (@collection.trails.author = @request.auth.id || @collection.trails.public = true)",
|
|
"viewRule": "@request.auth.id != \"\" && @collection.trails.waypoints.id ?= id && (@collection.trails.author = @request.auth.id || @collection.trails.public = true)",
|
|
"createRule": "@request.auth.id != \"\"",
|
|
"updateRule": "@request.auth.id != \"\" && @collection.trails.waypoints.id ?= id && (@collection.trails.author = @request.auth.id)",
|
|
"deleteRule": "@request.auth.id != \"\" && @collection.trails.waypoints.id ?= id && (@collection.trails.author = @request.auth.id)",
|
|
"options": {}
|
|
},
|
|
{
|
|
"id": "dd2l9a4vxpy2ni8",
|
|
"created": "2024-01-27 12:23:48.069Z",
|
|
"updated": "2024-02-02 21:24:15.600Z",
|
|
"name": "summit_logs",
|
|
"type": "base",
|
|
"system": false,
|
|
"schema": [
|
|
{
|
|
"system": false,
|
|
"id": "gxq1yeld",
|
|
"name": "date",
|
|
"type": "date",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": "",
|
|
"max": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "0ykzwuia",
|
|
"name": "text",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": "@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && (@collection.trails.author = @request.auth.id || @collection.trails.public = true)",
|
|
"viewRule": "@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && (@collection.trails.author = @request.auth.id || @collection.trails.public = true)",
|
|
"createRule": "@request.auth.id != \"\"",
|
|
"updateRule": "@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && (@collection.trails.author = @request.auth.id)",
|
|
"deleteRule": "@request.auth.id != \"\" && @collection.trails.summit_logs.id ?= id && (@collection.trails.author = @request.auth.id)",
|
|
"options": {}
|
|
},
|
|
{
|
|
"id": "r6gu2ajyidy1x69",
|
|
"created": "2024-02-27 11:46:07.367Z",
|
|
"updated": "2024-02-27 13:22:52.195Z",
|
|
"name": "lists",
|
|
"type": "base",
|
|
"system": false,
|
|
"schema": [
|
|
{
|
|
"system": false,
|
|
"id": "0goi1ipa",
|
|
"name": "name",
|
|
"type": "text",
|
|
"required": true,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": 1,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "3v3pwnqn",
|
|
"name": "description",
|
|
"type": "text",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"min": null,
|
|
"max": null,
|
|
"pattern": ""
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "decatj0h",
|
|
"name": "avatar",
|
|
"type": "file",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"mimeTypes": [
|
|
"image/png",
|
|
"image/vnd.mozilla.apng",
|
|
"image/jpeg",
|
|
"image/webp",
|
|
"image/svg+xml"
|
|
],
|
|
"thumbs": [],
|
|
"maxSelect": 1,
|
|
"maxSize": 5242880,
|
|
"protected": false
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "jqtcrcnq",
|
|
"name": "trails",
|
|
"type": "relation",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"collectionId": "e864strfxo14pm4",
|
|
"cascadeDelete": false,
|
|
"minSelect": null,
|
|
"maxSelect": null,
|
|
"displayFields": null
|
|
}
|
|
},
|
|
{
|
|
"system": false,
|
|
"id": "kwm6zdet",
|
|
"name": "author",
|
|
"type": "relation",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"collectionId": "_pb_users_auth_",
|
|
"cascadeDelete": false,
|
|
"minSelect": null,
|
|
"maxSelect": 1,
|
|
"displayFields": null
|
|
}
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": "author = @request.auth.id ",
|
|
"viewRule": "author = @request.auth.id ",
|
|
"createRule": "author = @request.auth.id ",
|
|
"updateRule": "author = @request.auth.id ",
|
|
"deleteRule": "author = @request.auth.id ",
|
|
"options": {}
|
|
}
|
|
]`
|
|
|
|
collections := []*models.Collection{}
|
|
if err := json.Unmarshal([]byte(jsonData), &collections); err != nil {
|
|
return err
|
|
}
|
|
|
|
return daos.New(db).ImportCollections(collections, true, nil)
|
|
}, func(db dbx.Builder) error {
|
|
return nil
|
|
})
|
|
}
|