SE - pokus o smazání Organisations z DB s pomocí admin přístupu zhavaruje #408

Closed
opened 2020-04-12 00:56:07 +02:00 by Podhorecky · 6 comments
Podhorecky commented 2020-04-12 00:56:07 +02:00 (Migrated from git.spotter.cz)

postup:

  • vlezu na stránku DB tabulek
  • vyberu tabulku db.org_organisation
  • vyfiltruji query tak, abych vynechal 1. organizaci v které je zapsán admin db.org_organisation.id>1
  • vypíše se vše, co mam v Organizacích
  • zaškrtnu smazání a smažu, vznikne ticket

ticket: https://sahana.spotter.dasm.cz:8443/eden/admin/ticket/eden/__ffff_31.30.50.4.2020-04-11.22-48-59.823bcede-66d2-48f9-9acb-4ca4e7265f15

v dřívějších verzích jsem tento postup na prasáka dělal a procházelo to. Mno, ...

postup: - vlezu na stránku DB tabulek - vyberu tabulku **db.org_organisation** - vyfiltruji query tak, abych vynechal 1. organizaci v které je zapsán admin **db.org_organisation.id>1** - vypíše se vše, co mam v Organizacích - zaškrtnu smazání a smažu, vznikne ticket ticket: https://sahana.spotter.dasm.cz:8443/eden/admin/ticket/eden/__ffff_31.30.50.4.2020-04-11.22-48-59.823bcede-66d2-48f9-9acb-4ca4e7265f15 v dřívějších verzích jsem tento postup na prasáka dělal a procházelo to. Mno, ...
Podhorecky commented 2020-04-12 00:56:07 +02:00 (Migrated from git.spotter.cz)

changed milestone to %2

changed milestone to %2
Disassembler commented 2020-04-20 16:52:57 +02:00 (Migrated from git.spotter.cz)

mentioned in issue #407

mentioned in issue #407
Disassembler commented 2020-04-20 20:32:11 +02:00 (Migrated from git.spotter.cz)

Při šťourání do této chyby jsem náhodou našel ještě úplně jinou, úplně jinde, která se týká PostGISu a má pro nás zatím neznámý dopad (ale nějaký evidentně má, jinak bych ji nenašel). Vyrobil a poslal jsem PR #623 do upstreamu pydalu, což je databázová abstrakce, kterou používá web2py, na kterém Sahana jede.

Při šťourání do této chyby jsem náhodou našel ještě úplně jinou, úplně jinde, která se týká PostGISu a má pro nás zatím neznámý dopad (ale nějaký evidentně má, jinak bych ji nenašel). Vyrobil a poslal jsem [PR #623](https://github.com/web2py/pydal/pull/623) do upstreamu *pydal*u, což je databázová abstrakce, kterou používá *web2py*, na kterém Sahana jede.
Disassembler commented 2020-04-20 20:49:16 +02:00 (Migrated from git.spotter.cz)

Hmm... ale u toho původního problému to vypadá, že je v právu Sahana, resp. Web2py. Log tvrdí:

2020-04-20 19:54:50.559 CEST [87] sahana@sahana ERROR:  update or delete on table "org_organisation" violates foreign key constraint "org_site_organisation_id_fkey" on table "org_site"
2020-04-20 19:54:50.559 CEST [87] sahana@sahana DETAIL:  Key (id)=(39) is still referenced from table "org_site".
2020-04-20 19:54:50.559 CEST [87] sahana@sahana STATEMENT:  DELETE FROM "org_organisation" WHERE ("org_organisation"."id" > 1);
2020-04-20 19:54:50.870 CEST [87] sahana@sahana ERROR:  current transaction is aborted, commands ignored until end of transaction block

Organizace 39 je JABOK - Vyšší odborná škola sociálně pedagogická a teologická - https://sahana.spotter.dasm.cz:8443/eden/org/organisation/39/read a v tabulce org_site na ní závisí site 34, což je podzáznam ke škole 34, což je tatáž škola v jiném modulu - https://sahana.spotter.dasm.cz:8443/eden/edu/school/34/read

Takže Web2py (nikoliv Sahana, přes tu to nejde) tímto způsobem pouze zpracuje selhání transakce kvůli porušení integrity dat pokusem o odstranění cizího klíče předané z databáze.

tl;dr: Smažte si školy, pak Vám (nejspíš) půjdou smazat i organizace.

Hmm... ale u toho původního problému to vypadá, že je v právu Sahana, resp. Web2py. Log tvrdí: ``` 2020-04-20 19:54:50.559 CEST [87] sahana@sahana ERROR: update or delete on table "org_organisation" violates foreign key constraint "org_site_organisation_id_fkey" on table "org_site" 2020-04-20 19:54:50.559 CEST [87] sahana@sahana DETAIL: Key (id)=(39) is still referenced from table "org_site". 2020-04-20 19:54:50.559 CEST [87] sahana@sahana STATEMENT: DELETE FROM "org_organisation" WHERE ("org_organisation"."id" > 1); 2020-04-20 19:54:50.870 CEST [87] sahana@sahana ERROR: current transaction is aborted, commands ignored until end of transaction block ``` Organizace 39 je *JABOK - Vyšší odborná škola sociálně pedagogická a teologická* - https://sahana.spotter.dasm.cz:8443/eden/org/organisation/39/read a v tabulce `org_site` na ní závisí site 34, což je podzáznam ke škole 34, což je tatáž škola v jiném modulu - https://sahana.spotter.dasm.cz:8443/eden/edu/school/34/read Takže Web2py (nikoliv Sahana, přes tu to nejde) tímto způsobem pouze zpracuje selhání transakce kvůli porušení integrity dat pokusem o odstranění cizího klíče předané z databáze. tl;dr: Smažte si školy, pak Vám (nejspíš) půjdou smazat i organizace.
Disassembler commented 2020-04-21 19:03:45 +02:00 (Migrated from git.spotter.cz)

mentioned in issue #427

mentioned in issue #427
Disassembler commented 2020-04-23 21:11:34 +02:00 (Migrated from git.spotter.cz)

closed

closed
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Disassembler/Spotter-VM#408
No description provided.