diff --git a/Makefile b/Makefile
index 5a6b184..9c2699f 100644
--- a/Makefile
+++ b/Makefile
@@ -18,8 +18,10 @@ TAR_EXCLUDE := --exclude='.git' \
--exclude='./.env' \
--exclude='./.DS_Store'
-HOOKS_SRC := pocketbase/pb_hooks
-HOOKS_DST := /volume1/docker/vereinshaus/pocketbase/data/pb_hooks
+HOOKS_SRC := pocketbase/pb_hooks
+HOOKS_DST := /volume1/docker/vereinshaus/pocketbase/data/pb_hooks
+MIGRATIONS_SRC := pocketbase/pb_migrations
+MIGRATIONS_DST := /volume1/docker/vereinshaus/pocketbase/migrations
.PHONY: help check-ssh start stop restart status logs logs-f logs-app \
shell-pb pb-admin deploy
@@ -71,6 +73,13 @@ deploy: check-ssh
cat "$$f" | ssh $(DS_HOST) "cat > $(HOOKS_DST)/$$(basename $$f)"; \
done; \
fi
+ @echo "→ PocketBase Migrations synchronisieren..."
+ @ssh $(DS_HOST) "mkdir -p $(MIGRATIONS_DST)"
+ @if ls $(MIGRATIONS_SRC)/*.js 2>/dev/null | grep -q .; then \
+ for f in $(MIGRATIONS_SRC)/*.js; do \
+ cat "$$f" | ssh $(DS_HOST) "cat > $(MIGRATIONS_DST)/$$(basename $$f)"; \
+ done; \
+ fi
@echo "→ Docker rebuild + restart..."
@ssh $(DS_HOST) " \
cd $(DS_PATH) && \
diff --git a/docker-compose.yml b/docker-compose.yml
index 47d3cd2..2e1a044 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,10 +5,12 @@ services:
image: ghcr.io/muchobien/pocketbase:latest
container_name: vereinshaus-pocketbase
restart: unless-stopped
+ command: ["--migrationsDir=/pb_data/migrations"]
volumes:
- /volume1/docker/vereinshaus/pocketbase/data:/pb_data
- /volume1/docker/vereinshaus/pocketbase/storage:/pb_public
- /volume1/docker/vereinshaus/pocketbase/data/pb_hooks:/pb_hooks
+ - /volume1/docker/vereinshaus/pocketbase/migrations:/pb_data/migrations
environment:
- TZ=Europe/Berlin
- BREVO_KEY=${BREVO_KEY}
diff --git a/pocketbase/pb_migrations/1779215839_created_vereine.js b/pocketbase/pb_migrations/1779215839_created_vereine.js
new file mode 100644
index 0000000..b1f4095
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215839_created_vereine.js
@@ -0,0 +1,144 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text1579384326",
+ "max": 0,
+ "min": 0,
+ "name": "name",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text3525840331",
+ "max": 0,
+ "min": 0,
+ "name": "plz",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text4138466142",
+ "max": 0,
+ "min": 0,
+ "name": "ort",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "select1497100012",
+ "maxSelect": 1,
+ "name": "bundesland",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "select",
+ "values": [
+ "BW",
+ "BY",
+ "BE",
+ "BB",
+ "HB",
+ "HH",
+ "HE",
+ "MV",
+ "NI",
+ "NW",
+ "RP",
+ "SL",
+ "SN",
+ "ST",
+ "SH",
+ "TH"
+ ]
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "select3713686397",
+ "maxSelect": 1,
+ "name": "plan",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "select",
+ "values": [
+ "free",
+ "starter",
+ "wachstum",
+ "verband"
+ ]
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text1888339527",
+ "max": 0,
+ "min": 0,
+ "name": "stripe_customer_id",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ }
+ ],
+ "id": "pbc_3589557411",
+ "indexes": [],
+ "listRule": "@request.auth.verein_id = id",
+ "name": "vereine",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.verein_id = id",
+ "viewRule": "@request.auth.verein_id = id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_3589557411");
+
+ return app.delete(collection);
+})
diff --git a/pocketbase/pb_migrations/1779215883_created_gruppen.js b/pocketbase/pb_migrations/1779215883_created_gruppen.js
new file mode 100644
index 0000000..858d446
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215883_created_gruppen.js
@@ -0,0 +1,67 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": "@request.auth.verein_id = verein_id",
+ "deleteRule": "@request.auth.verein_id = verein_id",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": true,
+ "collectionId": "pbc_3589557411",
+ "help": "",
+ "hidden": false,
+ "id": "relation145676011",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "verein_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text1579384326",
+ "max": 0,
+ "min": 0,
+ "name": "name",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ }
+ ],
+ "id": "pbc_3099069179",
+ "indexes": [],
+ "listRule": "@request.auth.verein_id = verein_id",
+ "name": "gruppen",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.verein_id = verein_id",
+ "viewRule": "@request.auth.verein_id = verein_id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_3099069179");
+
+ return app.delete(collection);
+})
diff --git a/pocketbase/pb_migrations/1779215883_updated_users.js b/pocketbase/pb_migrations/1779215883_updated_users.js
new file mode 100644
index 0000000..d8f294a
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215883_updated_users.js
@@ -0,0 +1,29 @@
+///
+migrate((app) => {
+ const collection = app.findCollectionByNameOrId("_pb_users_auth_")
+
+ // add field
+ collection.fields.addAt(10, new Field({
+ "cascadeDelete": false,
+ "collectionId": "pbc_3589557411",
+ "help": "",
+ "hidden": false,
+ "id": "relation145676011",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "verein_id",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "relation"
+ }))
+
+ return app.save(collection)
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("_pb_users_auth_")
+
+ // remove field
+ collection.fields.removeById("relation145676011")
+
+ return app.save(collection)
+})
diff --git a/pocketbase/pb_migrations/1779215901_created_beitraege.js b/pocketbase/pb_migrations/1779215901_created_beitraege.js
new file mode 100644
index 0000000..5ffa960
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215901_created_beitraege.js
@@ -0,0 +1,97 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": "@request.auth.verein_id = verein_id",
+ "deleteRule": "@request.auth.verein_id = verein_id",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": true,
+ "collectionId": "pbc_3589557411",
+ "help": "",
+ "hidden": false,
+ "id": "relation145676011",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "verein_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text1579384326",
+ "max": 0,
+ "min": 0,
+ "name": "name",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "number3107246631",
+ "max": null,
+ "min": null,
+ "name": "betrag",
+ "onlyInt": false,
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "number"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "select917011370",
+ "maxSelect": 1,
+ "name": "rhythmus",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "select",
+ "values": [
+ "monatlich",
+ "quartalsweise",
+ "jaehrlich",
+ "einmalig"
+ ]
+ }
+ ],
+ "id": "pbc_3218207135",
+ "indexes": [],
+ "listRule": "@request.auth.verein_id = verein_id",
+ "name": "beitraege",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.verein_id = verein_id",
+ "viewRule": "@request.auth.verein_id = verein_id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_3218207135");
+
+ return app.delete(collection);
+})
diff --git a/pocketbase/pb_migrations/1779215901_created_mitglieder.js b/pocketbase/pb_migrations/1779215901_created_mitglieder.js
new file mode 100644
index 0000000..6dad2e0
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215901_created_mitglieder.js
@@ -0,0 +1,139 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": "@request.auth.verein_id = verein_id",
+ "deleteRule": "@request.auth.verein_id = verein_id",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": true,
+ "collectionId": "pbc_3589557411",
+ "help": "",
+ "hidden": false,
+ "id": "relation145676011",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "verein_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text386110805",
+ "max": 0,
+ "min": 0,
+ "name": "vorname",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text3586640595",
+ "max": 0,
+ "min": 0,
+ "name": "nachname",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "exceptDomains": null,
+ "help": "",
+ "hidden": false,
+ "id": "email3885137012",
+ "name": "email",
+ "onlyDomains": null,
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "email"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text4208291426",
+ "max": 0,
+ "min": 0,
+ "name": "iban",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": false,
+ "collectionId": "pbc_3099069179",
+ "help": "",
+ "hidden": false,
+ "id": "relation1077495665",
+ "maxSelect": 99,
+ "minSelect": 0,
+ "name": "gruppe_ids",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "select2063623452",
+ "maxSelect": 1,
+ "name": "status",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "select",
+ "values": [
+ "aktiv",
+ "passiv",
+ "ausgetreten"
+ ]
+ }
+ ],
+ "id": "pbc_2707111162",
+ "indexes": [],
+ "listRule": "@request.auth.verein_id = verein_id",
+ "name": "mitglieder",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.verein_id = verein_id",
+ "viewRule": "@request.auth.verein_id = verein_id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_2707111162");
+
+ return app.delete(collection);
+})
diff --git a/pocketbase/pb_migrations/1779215948_created_einzuege.js b/pocketbase/pb_migrations/1779215948_created_einzuege.js
new file mode 100644
index 0000000..16c1ad5
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215948_created_einzuege.js
@@ -0,0 +1,123 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": "@request.auth.verein_id = mitglied_id.verein_id",
+ "deleteRule": "@request.auth.verein_id = mitglied_id.verein_id",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": true,
+ "collectionId": "pbc_2707111162",
+ "help": "",
+ "hidden": false,
+ "id": "relation3039789658",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "mitglied_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "cascadeDelete": false,
+ "collectionId": "pbc_3218207135",
+ "help": "",
+ "hidden": false,
+ "id": "relation715527895",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "beitrag_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "number3107246631",
+ "max": null,
+ "min": null,
+ "name": "betrag",
+ "onlyInt": false,
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "number"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "date3314956993",
+ "max": "",
+ "min": "",
+ "name": "faellig_am",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "date"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "select2063623452",
+ "maxSelect": 1,
+ "name": "status",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "select",
+ "values": [
+ "ausstehend",
+ "bezahlt",
+ "fehlgeschlagen",
+ "storniert"
+ ]
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text4235393406",
+ "max": 0,
+ "min": 0,
+ "name": "stripe_payment_intent_id",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ }
+ ],
+ "id": "pbc_659326735",
+ "indexes": [],
+ "listRule": "@request.auth.verein_id = mitglied_id.verein_id",
+ "name": "einzuege",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.verein_id = mitglied_id.verein_id",
+ "viewRule": "@request.auth.verein_id = mitglied_id.verein_id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_659326735");
+
+ return app.delete(collection);
+})
diff --git a/pocketbase/pb_migrations/1779215948_created_nachrichten.js b/pocketbase/pb_migrations/1779215948_created_nachrichten.js
new file mode 100644
index 0000000..5343778
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215948_created_nachrichten.js
@@ -0,0 +1,105 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": "@request.auth.verein_id = verein_id",
+ "deleteRule": "@request.auth.verein_id = verein_id",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": true,
+ "collectionId": "pbc_3589557411",
+ "help": "",
+ "hidden": false,
+ "id": "relation145676011",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "verein_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text3446813636",
+ "max": 0,
+ "min": 0,
+ "name": "betreff",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "convertURLs": false,
+ "help": "",
+ "hidden": false,
+ "id": "editor999008199",
+ "maxSize": 0,
+ "name": "text",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "editor"
+ },
+ {
+ "cascadeDelete": false,
+ "collectionId": "pbc_3099069179",
+ "help": "",
+ "hidden": false,
+ "id": "relation1077495665",
+ "maxSelect": 99,
+ "minSelect": 0,
+ "name": "gruppe_ids",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "date2716153632",
+ "max": "",
+ "min": "",
+ "name": "gesendet_am",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "date"
+ }
+ ],
+ "id": "pbc_1415911511",
+ "indexes": [],
+ "listRule": "@request.auth.verein_id = verein_id",
+ "name": "nachrichten",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.verein_id = verein_id",
+ "viewRule": "@request.auth.verein_id = verein_id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_1415911511");
+
+ return app.delete(collection);
+})
diff --git a/pocketbase/pb_migrations/1779215948_created_push_subscriptions.js b/pocketbase/pb_migrations/1779215948_created_push_subscriptions.js
new file mode 100644
index 0000000..c7998d0
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215948_created_push_subscriptions.js
@@ -0,0 +1,94 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": "@request.auth.id != ''",
+ "deleteRule": "@request.auth.id = user_id",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": true,
+ "collectionId": "_pb_users_auth_",
+ "help": "",
+ "hidden": false,
+ "id": "relation2809058197",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "user_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "exceptDomains": null,
+ "help": "",
+ "hidden": false,
+ "id": "url3292663675",
+ "name": "endpoint",
+ "onlyDomains": null,
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "url"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text3303707132",
+ "max": 0,
+ "min": 0,
+ "name": "p256dh",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text4175343705",
+ "max": 0,
+ "min": 0,
+ "name": "auth",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ }
+ ],
+ "id": "pbc_1438754935",
+ "indexes": [],
+ "listRule": "@request.auth.id = user_id",
+ "name": "push_subscriptions",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.id = user_id",
+ "viewRule": "@request.auth.id = user_id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_1438754935");
+
+ return app.delete(collection);
+})
diff --git a/pocketbase/pb_migrations/1779215948_created_termine.js b/pocketbase/pb_migrations/1779215948_created_termine.js
new file mode 100644
index 0000000..6053dbe
--- /dev/null
+++ b/pocketbase/pb_migrations/1779215948_created_termine.js
@@ -0,0 +1,120 @@
+///
+migrate((app) => {
+ const collection = new Collection({
+ "createRule": "@request.auth.verein_id = verein_id",
+ "deleteRule": "@request.auth.verein_id = verein_id",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "help": "",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": true,
+ "collectionId": "pbc_3589557411",
+ "help": "",
+ "hidden": false,
+ "id": "relation145676011",
+ "maxSelect": 1,
+ "minSelect": 0,
+ "name": "verein_id",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "relation"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text2200468358",
+ "max": 0,
+ "min": 0,
+ "name": "titel",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "date363840172",
+ "max": "",
+ "min": "",
+ "name": "beginn",
+ "presentable": false,
+ "required": true,
+ "system": false,
+ "type": "date"
+ },
+ {
+ "help": "",
+ "hidden": false,
+ "id": "date1404831091",
+ "max": "",
+ "min": "",
+ "name": "ende",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "date"
+ },
+ {
+ "autogeneratePattern": "",
+ "help": "",
+ "hidden": false,
+ "id": "text4138466142",
+ "max": 0,
+ "min": 0,
+ "name": "ort",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "cascadeDelete": false,
+ "collectionId": "pbc_3099069179",
+ "help": "",
+ "hidden": false,
+ "id": "relation1077495665",
+ "maxSelect": 99,
+ "minSelect": 0,
+ "name": "gruppe_ids",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "relation"
+ }
+ ],
+ "id": "pbc_2279568741",
+ "indexes": [],
+ "listRule": "@request.auth.verein_id = verein_id",
+ "name": "termine",
+ "system": false,
+ "type": "base",
+ "updateRule": "@request.auth.verein_id = verein_id",
+ "viewRule": "@request.auth.verein_id = verein_id"
+ });
+
+ return app.save(collection);
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_2279568741");
+
+ return app.delete(collection);
+})