gitch
191 строка · 4.0 Кб
1package migrations
2
3import (
4"encoding/json"
5
6"github.com/pocketbase/dbx"
7"github.com/pocketbase/pocketbase/daos"
8m "github.com/pocketbase/pocketbase/migrations"
9"github.com/pocketbase/pocketbase/models"
10)
11
12func init() {
13m.Register(func(db dbx.Builder) error {
14jsonData := `[
15{
16"id": "_pb_users_auth_",
17"created": "2024-09-12 20:52:11.896Z",
18"updated": "2024-09-12 20:52:11.897Z",
19"name": "users",
20"type": "auth",
21"system": false,
22"schema": [
23{
24"system": false,
25"id": "users_name",
26"name": "name",
27"type": "text",
28"required": false,
29"presentable": false,
30"unique": false,
31"options": {
32"min": null,
33"max": null,
34"pattern": ""
35}
36},
37{
38"system": false,
39"id": "users_avatar",
40"name": "avatar",
41"type": "file",
42"required": false,
43"presentable": false,
44"unique": false,
45"options": {
46"mimeTypes": [
47"image/jpeg",
48"image/png",
49"image/svg+xml",
50"image/gif",
51"image/webp"
52],
53"thumbs": null,
54"maxSelect": 1,
55"maxSize": 5242880,
56"protected": false
57}
58}
59],
60"indexes": [],
61"listRule": "id = @request.auth.id",
62"viewRule": "id = @request.auth.id",
63"createRule": "",
64"updateRule": "id = @request.auth.id",
65"deleteRule": "id = @request.auth.id",
66"options": {
67"allowEmailAuth": true,
68"allowOAuth2Auth": true,
69"allowUsernameAuth": true,
70"exceptEmailDomains": null,
71"manageRule": null,
72"minPasswordLength": 8,
73"onlyEmailDomains": null,
74"onlyVerified": false,
75"requireEmail": false
76}
77},
78{
79"id": "igxbyc464ycs1s7",
80"created": "2024-09-12 20:53:56.741Z",
81"updated": "2024-09-12 20:53:56.741Z",
82"name": "projects",
83"type": "base",
84"system": false,
85"schema": [
86{
87"system": false,
88"id": "58lvf09w",
89"name": "from",
90"type": "text",
91"required": false,
92"presentable": false,
93"unique": false,
94"options": {
95"min": null,
96"max": null,
97"pattern": ""
98}
99},
100{
101"system": false,
102"id": "1anftqzv",
103"name": "to",
104"type": "text",
105"required": false,
106"presentable": false,
107"unique": false,
108"options": {
109"min": null,
110"max": null,
111"pattern": ""
112}
113},
114{
115"system": false,
116"id": "25thpav4",
117"name": "enabled",
118"type": "bool",
119"required": false,
120"presentable": false,
121"unique": false,
122"options": {}
123}
124],
125"indexes": [],
126"listRule": null,
127"viewRule": null,
128"createRule": null,
129"updateRule": null,
130"deleteRule": null,
131"options": {}
132},
133{
134"id": "t9t4ngqknmzg2zw",
135"created": "2024-09-12 20:54:57.694Z",
136"updated": "2024-09-12 20:54:57.694Z",
137"name": "settings",
138"type": "base",
139"system": false,
140"schema": [
141{
142"system": false,
143"id": "fls8wlww",
144"name": "key",
145"type": "text",
146"required": true,
147"presentable": false,
148"unique": false,
149"options": {
150"min": null,
151"max": null,
152"pattern": ""
153}
154},
155{
156"system": false,
157"id": "vqstkr9u",
158"name": "value",
159"type": "text",
160"required": false,
161"presentable": false,
162"unique": false,
163"options": {
164"min": null,
165"max": null,
166"pattern": ""
167}
168}
169],
170"indexes": [
171"CREATE UNIQUE INDEX ` + "`" + `idx_fig8mm1` + "`" + ` ON ` + "`" + `settings` + "`" + ` (` + "`" + `key` + "`" + `)"
172],
173"listRule": null,
174"viewRule": null,
175"createRule": null,
176"updateRule": null,
177"deleteRule": null,
178"options": {}
179}
180]`
181
182collections := []*models.Collection{}
183if err := json.Unmarshal([]byte(jsonData), &collections); err != nil {
184return err
185}
186
187return daos.New(db).ImportCollections(collections, true, nil)
188}, func(db dbx.Builder) error {
189return nil
190})
191}
192