Fix: importCollections() statt app.save() für korrekte Rule-Compilation in PB v0.38
This commit is contained in:
parent
9898581ae4
commit
caff0feae8
1 changed files with 20 additions and 55 deletions
|
|
@ -1,81 +1,46 @@
|
||||||
/// <reference path="../pb_data/types.d.ts" />
|
/// <reference path="../pb_data/types.d.ts" />
|
||||||
migrate((app) => {
|
migrate((app) => {
|
||||||
|
|
||||||
// neuigkeiten – Vereins-Feed mit Medien
|
// Neuigkeiten + Reaktionen via importCollections (korrekte Rule-Compilation in PocketBase v0.38)
|
||||||
{
|
app.importCollections([
|
||||||
const c = new Collection({
|
{
|
||||||
"createRule": "@request.auth.verein_id = verein_id",
|
"createRule": "@request.auth.verein_id = verein_id",
|
||||||
"deleteRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
|
"deleteRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
|
||||||
"listRule": "@request.auth.verein_id = verein_id",
|
"listRule": "@request.auth.verein_id = verein_id",
|
||||||
"viewRule": "@request.auth.verein_id = verein_id",
|
"viewRule": "@request.auth.verein_id = verein_id",
|
||||||
"updateRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
|
"updateRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{ "type": "relation", "name": "verein_id", "required": true, "cascadeDelete": true, "collectionId": "pbc_3589557411", "maxSelect": 1 },
|
||||||
"type": "relation", "name": "verein_id",
|
{ "type": "relation", "name": "autor_id", "required": true, "cascadeDelete": false, "collectionId": "_pb_users_auth_", "maxSelect": 1 },
|
||||||
"required": true, "cascadeDelete": true,
|
{ "type": "text", "name": "autor_name" },
|
||||||
"collectionId": "pbc_3589557411", "maxSelect": 1
|
{ "type": "text", "name": "text" },
|
||||||
},
|
{ "type": "file", "name": "medien", "maxSelect": 10, "maxSize": 15728640, "mimeTypes": ["image/jpeg","image/png","image/gif","image/webp","video/mp4","video/quicktime"] },
|
||||||
{
|
{ "type": "relation", "name": "gruppe_ids", "cascadeDelete": false, "collectionId": "pbc_3099069179", "maxSelect": 99 },
|
||||||
"type": "relation", "name": "autor_id",
|
{ "type": "relation", "name": "termin_id", "cascadeDelete": false, "collectionId": "pbc_2279568741", "maxSelect": 1 }
|
||||||
"required": true, "cascadeDelete": false,
|
|
||||||
"collectionId": "_pb_users_auth_", "maxSelect": 1
|
|
||||||
},
|
|
||||||
{ "type": "text", "name": "autor_name" },
|
|
||||||
{ "type": "text", "name": "text" },
|
|
||||||
{
|
|
||||||
"type": "file", "name": "medien",
|
|
||||||
"maxSelect": 10, "maxSize": 15728640,
|
|
||||||
"mimeTypes": ["image/jpeg","image/png","image/gif","image/webp","video/mp4","video/quicktime"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation", "name": "gruppe_ids",
|
|
||||||
"cascadeDelete": false,
|
|
||||||
"collectionId": "pbc_3099069179", "maxSelect": 99
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation", "name": "termin_id",
|
|
||||||
"cascadeDelete": false,
|
|
||||||
"collectionId": "pbc_2279568741", "maxSelect": 1
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"name": "neuigkeiten",
|
"name": "neuigkeiten",
|
||||||
"system": false,
|
|
||||||
"type": "base"
|
"type": "base"
|
||||||
})
|
}
|
||||||
app.save(c)
|
], false)
|
||||||
// Re-save erzwingt Rule-Recompilation in PocketBase v0.38
|
|
||||||
const n2 = app.findCollectionByNameOrId("neuigkeiten")
|
|
||||||
app.save(n2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// reaktionen – 👍 pro User pro Beitrag
|
const neuigkeitenId = app.findCollectionByNameOrId("neuigkeiten").id
|
||||||
{
|
|
||||||
const neuigkeitenId = app.findCollectionByNameOrId("neuigkeiten").id
|
app.importCollections([
|
||||||
const c = new Collection({
|
{
|
||||||
"createRule": "@request.auth.id != ''",
|
"createRule": "@request.auth.id != ''",
|
||||||
"deleteRule": "@request.auth.id = user_id",
|
"deleteRule": "@request.auth.id = user_id",
|
||||||
"listRule": "@request.auth.verein_id = beitrag_id.verein_id",
|
"listRule": "@request.auth.verein_id = beitrag_id.verein_id",
|
||||||
"viewRule": "@request.auth.verein_id = beitrag_id.verein_id",
|
"viewRule": "@request.auth.verein_id = beitrag_id.verein_id",
|
||||||
"updateRule": null,
|
"updateRule": null,
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{ "type": "relation", "name": "beitrag_id", "required": true, "cascadeDelete": true, "collectionId": neuigkeitenId, "maxSelect": 1 },
|
||||||
"type": "relation", "name": "beitrag_id",
|
{ "type": "relation", "name": "user_id", "required": true, "cascadeDelete": true, "collectionId": "_pb_users_auth_", "maxSelect": 1 }
|
||||||
"required": true, "cascadeDelete": true,
|
|
||||||
"collectionId": neuigkeitenId, "maxSelect": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "relation", "name": "user_id",
|
|
||||||
"required": true, "cascadeDelete": true,
|
|
||||||
"collectionId": "_pb_users_auth_", "maxSelect": 1
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"indexes": ["CREATE UNIQUE INDEX idx_reaktion_unique ON reaktionen (beitrag_id, user_id)"],
|
"indexes": ["CREATE UNIQUE INDEX idx_reaktion_unique ON reaktionen (beitrag_id, user_id)"],
|
||||||
"name": "reaktionen",
|
"name": "reaktionen",
|
||||||
"system": false,
|
|
||||||
"type": "base"
|
"type": "base"
|
||||||
})
|
}
|
||||||
app.save(c)
|
], false)
|
||||||
}
|
|
||||||
|
|
||||||
}, (app) => {
|
}, (app) => {
|
||||||
try { app.delete(app.findCollectionByNameOrId("reaktionen")) } catch(_) {}
|
try { app.delete(app.findCollectionByNameOrId("reaktionen")) } catch(_) {}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue