diff --git a/backend/migrations/1698445123_collections_snapshot.go b/backend/migrations/1698445123_collections_snapshot.go deleted file mode 100644 index 2e2d92d..0000000 --- a/backend/migrations/1698445123_collections_snapshot.go +++ /dev/null @@ -1,417 +0,0 @@ -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": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-10-27 22:15:09.073Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (` + "`" + `course` + "`" + `)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-10-27 22:15:09.073Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "presentable": false, - "unique": false, - "options": {} - } - ], - "indexes": [], - "listRule": null, - "viewRule": "", - "createRule": null, - "updateRule": "", - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2023-10-27 22:16:26.924Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "0kahthzr", - "name": "uuid", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "tvxitgwc", - "name": "start", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "trbmsfcz", - "name": "end", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_orp1NWL` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Day` + "`" + `,\n ` + "`" + `Week` + "`" + `,\n ` + "`" + `Start` + "`" + `,\n ` + "`" + `End` + "`" + `,\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `Prof` + "`" + `,\n ` + "`" + `Rooms` + "`" + `,\n ` + "`" + `EventType` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "_pb_users_auth_", - "created": "2023-10-27 22:15:08.738Z", - "updated": "2023-10-27 22:15:09.074Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "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": { - "maxSelect": 1, - "maxSize": 5242880, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "protected": false - } - } - ], - "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, - "requireEmail": false - } - } - ]` - - 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 - }) -} diff --git a/backend/migrations/1698444986_updated_events.go b/backend/migrations/1698770845_updated_events.go similarity index 68% rename from backend/migrations/1698444986_updated_events.go rename to backend/migrations/1698770845_updated_events.go index f0d23e3..8c32cdc 100644 --- a/backend/migrations/1698444986_updated_events.go +++ b/backend/migrations/1698770845_updated_events.go @@ -18,6 +18,8 @@ func init() { return err } + json.Unmarshal([]byte(`[]`), &collection.Indexes) + // remove collection.Schema.RemoveField("7vsr9h6p") @@ -28,7 +30,7 @@ func init() { new_start := &schema.SchemaField{} json.Unmarshal([]byte(`{ "system": false, - "id": "tvxitgwc", + "id": "6hkjwgb4", "name": "start", "type": "date", "required": false, @@ -45,7 +47,7 @@ func init() { new_end := &schema.SchemaField{} json.Unmarshal([]byte(`{ "system": false, - "id": "trbmsfcz", + "id": "szbefpjf", "name": "end", "type": "date", "required": false, @@ -58,6 +60,24 @@ func init() { }`), new_end) collection.Schema.AddField(new_end) + // add + new_Compulsory := &schema.SchemaField{} + json.Unmarshal([]byte(`{ + "system": false, + "id": "nlnnxu7x", + "name": "Compulsory", + "type": "text", + "required": false, + "presentable": false, + "unique": false, + "options": { + "min": null, + "max": null, + "pattern": "" + } + }`), new_Compulsory) + collection.Schema.AddField(new_Compulsory) + return dao.SaveCollection(collection) }, func(db dbx.Builder) error { dao := daos.New(db) @@ -67,6 +87,10 @@ func init() { return err } + json.Unmarshal([]byte(`[ + "CREATE UNIQUE INDEX `+"`"+`idx_orp1NWL`+"`"+` ON `+"`"+`events`+"`"+` (\n `+"`"+`Day`+"`"+`,\n `+"`"+`Week`+"`"+`,\n `+"`"+`Start`+"`"+`,\n `+"`"+`End`+"`"+`,\n `+"`"+`Name`+"`"+`,\n `+"`"+`course`+"`"+`,\n `+"`"+`Prof`+"`"+`,\n `+"`"+`Rooms`+"`"+`,\n `+"`"+`EventType`+"`"+`\n)" + ]`), &collection.Indexes) + // add del_Start := &schema.SchemaField{} json.Unmarshal([]byte(`{ @@ -104,10 +128,13 @@ func init() { collection.Schema.AddField(del_End) // remove - collection.Schema.RemoveField("tvxitgwc") + collection.Schema.RemoveField("6hkjwgb4") // remove - collection.Schema.RemoveField("trbmsfcz") + collection.Schema.RemoveField("szbefpjf") + + // remove + collection.Schema.RemoveField("nlnnxu7x") return dao.SaveCollection(collection) }) diff --git a/backend/migrations/1698671745_updated_events.go b/backend/migrations/1698770863_updated_events.go similarity index 55% rename from backend/migrations/1698671745_updated_events.go rename to backend/migrations/1698770863_updated_events.go index 6622766..e007df4 100644 --- a/backend/migrations/1698671745_updated_events.go +++ b/backend/migrations/1698770863_updated_events.go @@ -6,7 +6,6 @@ import ( "github.com/pocketbase/dbx" "github.com/pocketbase/pocketbase/daos" m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models/schema" ) func init() { @@ -18,23 +17,9 @@ func init() { return err } - // add - new_Compulsory := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "skr0nsbz", - "name": "Compulsory", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }`), new_Compulsory) - collection.Schema.AddField(new_Compulsory) + json.Unmarshal([]byte(`[ + "CREATE INDEX `+"`"+`idx_4vOTAiC`+"`"+` ON `+"`"+`events`+"`"+` (\n `+"`"+`Name`+"`"+`,\n `+"`"+`course`+"`"+`,\n `+"`"+`start`+"`"+`,\n `+"`"+`end`+"`"+`,\n `+"`"+`semester`+"`"+`,\n `+"`"+`EventType`+"`"+`,\n `+"`"+`Compulsory`+"`"+`\n)" + ]`), &collection.Indexes) return dao.SaveCollection(collection) }, func(db dbx.Builder) error { @@ -45,8 +30,7 @@ func init() { return err } - // remove - collection.Schema.RemoveField("skr0nsbz") + json.Unmarshal([]byte(`[]`), &collection.Indexes) return dao.SaveCollection(collection) }) diff --git a/backend/migrations/1698671759_collections_snapshot.go b/backend/migrations/1698770891_collections_snapshot.go similarity index 91% rename from backend/migrations/1698671759_collections_snapshot.go rename to backend/migrations/1698770891_collections_snapshot.go index 678ab38..ca31bf3 100644 --- a/backend/migrations/1698671759_collections_snapshot.go +++ b/backend/migrations/1698770891_collections_snapshot.go @@ -12,10 +12,72 @@ import ( func init() { m.Register(func(db dbx.Builder) error { jsonData := `[ + { + "id": "_pb_users_auth_", + "created": "2023-09-20 10:23:59.315Z", + "updated": "2023-10-17 22:18:39.192Z", + "name": "users", + "type": "auth", + "system": false, + "schema": [ + { + "system": false, + "id": "users_name", + "name": "name", + "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": { + "maxSelect": 1, + "maxSize": 5242880, + "mimeTypes": [ + "image/jpeg", + "image/png", + "image/svg+xml", + "image/gif", + "image/webp" + ], + "thumbs": null, + "protected": false + } + } + ], + "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, + "requireEmail": false + } + }, { "id": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-10-30 13:14:28.637Z", + "created": "2023-09-21 16:53:51.811Z", + "updated": "2023-10-17 22:18:39.190Z", "name": "groups", "type": "base", "system": false, @@ -117,8 +179,8 @@ func init() { }, { "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-10-30 13:14:28.637Z", + "created": "2023-09-21 16:53:51.812Z", + "updated": "2023-10-17 22:18:39.191Z", "name": "feeds", "type": "base", "system": false, @@ -144,8 +206,8 @@ func init() { }, { "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2023-10-30 13:15:45.797Z", + "created": "2023-09-28 12:07:17.340Z", + "updated": "2023-10-31 16:47:43.090Z", "name": "events", "type": "base", "system": false, @@ -306,7 +368,7 @@ func init() { }, { "system": false, - "id": "tvxitgwc", + "id": "6hkjwgb4", "name": "start", "type": "date", "required": false, @@ -319,7 +381,7 @@ func init() { }, { "system": false, - "id": "trbmsfcz", + "id": "szbefpjf", "name": "end", "type": "date", "required": false, @@ -332,7 +394,7 @@ func init() { }, { "system": false, - "id": "skr0nsbz", + "id": "nlnnxu7x", "name": "Compulsory", "type": "text", "required": false, @@ -346,7 +408,7 @@ func init() { } ], "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_orp1NWL` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Day` + "`" + `,\n ` + "`" + `Week` + "`" + `,\n ` + "`" + `Start` + "`" + `,\n ` + "`" + `End` + "`" + `,\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `Prof` + "`" + `,\n ` + "`" + `Rooms` + "`" + `,\n ` + "`" + `EventType` + "`" + `\n)" + "CREATE INDEX ` + "`" + `idx_4vOTAiC` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `start` + "`" + `,\n ` + "`" + `end` + "`" + `,\n ` + "`" + `semester` + "`" + `,\n ` + "`" + `EventType` + "`" + `,\n ` + "`" + `Compulsory` + "`" + `\n)" ], "listRule": null, "viewRule": null, @@ -354,68 +416,6 @@ func init() { "updateRule": null, "deleteRule": null, "options": {} - }, - { - "id": "_pb_users_auth_", - "created": "2023-10-30 13:14:28.250Z", - "updated": "2023-10-30 13:14:28.637Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "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": { - "maxSelect": 1, - "maxSize": 5242880, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "protected": false - } - } - ], - "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, - "requireEmail": false - } } ]`