vereinshaus/pocketbase/pb_migrations/1779230900_neuigkeiten.js
rene 61c430f2e6 Fix: neuigkeiten-Migration auf new Collection()+app.save() umgestellt
importCollections() kompiliert Access-Rules in PocketBase v0.38 nicht
korrekt → HTTP 400 bei jedem List-Request. Alle anderen Migrationen
(nachrichten, mitglieder, etc.) verwenden new Collection() + app.save()
und funktionieren einwandfrei. Gleiche Methode jetzt auch für neuigkeiten
und reaktionen.

Außerdem: Makefile um staging-reset-Target erweitert (löscht PB-Daten),
staging-deploy synchronisiert Migrations und Hooks jetzt vollständig
(nicht nur neue Dateien).
2026-05-21 20:49:11 +02:00

190 lines
5.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
// neuigkeiten: new Collection() + app.save() genau wie nachrichten/mitglieder.
// importCollections() kompiliert Rules in PB v0.38 NICHT korrekt → HTTP 400.
const neuigkeiten = new Collection({
"id": "pbc_1779230901",
"name": "neuigkeiten",
"type": "base",
"system": false,
"listRule": "@request.auth.verein_id = verein_id",
"viewRule": "@request.auth.verein_id = verein_id",
"createRule": "@request.auth.verein_id = verein_id",
"updateRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
"deleteRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
"indexes": [],
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"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",
"hidden": false,
"id": "relation3100049688",
"maxSelect": 1,
"minSelect": 0,
"name": "verein_id",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text2300079512",
"max": 0,
"min": 0,
"name": "autor_id",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": true,
"system": false,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1546895374",
"max": 0,
"min": 0,
"name": "autor_name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1059453555",
"max": 0,
"min": 0,
"name": "text",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "file5103562148",
"maxSelect": 10,
"maxSize": 15728640,
"mimeTypes": ["image/jpeg","image/png","image/gif","image/webp","video/mp4","video/quicktime"],
"name": "medien",
"presentable": false,
"required": false,
"system": false,
"type": "file"
},
{
"cascadeDelete": false,
"collectionId": "pbc_3099069179",
"hidden": false,
"id": "relation3177861730",
"maxSelect": 99,
"minSelect": 0,
"name": "gruppe_ids",
"presentable": false,
"required": false,
"system": false,
"type": "relation"
},
{
"cascadeDelete": false,
"collectionId": "pbc_2279568741",
"hidden": false,
"id": "relation2143897900",
"maxSelect": 1,
"minSelect": 0,
"name": "termin_id",
"presentable": false,
"required": false,
"system": false,
"type": "relation"
}
]
});
app.save(neuigkeiten);
const neuigkeitenId = app.findCollectionByNameOrId("neuigkeiten").id;
const reaktionen = new Collection({
"id": "pbc_1779230902",
"name": "reaktionen",
"type": "base",
"system": false,
"createRule": "@request.auth.id != ''",
"deleteRule": "@request.auth.id = user_id",
"listRule": "@request.auth.verein_id = beitrag_id.verein_id",
"viewRule": "@request.auth.verein_id = beitrag_id.verein_id",
"updateRule": null,
"indexes": ["CREATE UNIQUE INDEX idx_reaktion_unique ON reaktionen (beitrag_id, user_id)"],
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"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": neuigkeitenId,
"hidden": false,
"id": "relation4196188140",
"maxSelect": 1,
"minSelect": 0,
"name": "beitrag_id",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
},
{
"cascadeDelete": true,
"collectionId": "_pb_users_auth_",
"hidden": false,
"id": "relation3255232538",
"maxSelect": 1,
"minSelect": 0,
"name": "user_id",
"presentable": false,
"required": true,
"system": false,
"type": "relation"
}
]
});
app.save(reaktionen);
}, (app) => {
try { app.delete(app.findCollectionByNameOrId("reaktionen")) } catch(_) {}
try { app.delete(app.findCollectionByNameOrId("neuigkeiten")) } catch(_) {}
})