UKA har flyttet inn i MDB2

Om migrasjonen

Vi har all data for UKA.no liggende i et «schema» (kalt uka) under mdb. Dette gjør at vi kan bruke medlemsdatabasens data direkte, hente ut medlems- og gruppestrukturinformasjon uten å duplisere den. Når UKA.no kobler til mdb2, gjør den alltid det med search_path satt til 'uka'. Dette gjør at den bare ser relevante tabeller i vanlig operasjon.

Når UKA.no da skal slå opp på f.eks. det den tror er sin egen tabell, uka.authentication_group, slår den opp i et view. Akkurat dette slår opp i public.gruppe for å finne data om gruppen, og JOIN-er inn UKEspesifikk data i uka.authentication_group som har en fremmednøkkel til public.gruppe.

Dette skjer med authentication_group for grupper, auth_user for brukere, authentication_group_parents for gruppestruktur, authentication_position for verv, events_showing for billig-events, og bruker muligens valid_groups for å hente grupper som er barn av den øverste UKEgruppen.

Detaljer er å finne på https://bugs.uka.no/trac/wiki/MDB-migration

Hva medfører dette?

At vi har en del ekstra fremmednøkler til ting som ligger utenfor UKA.

Sære greier vi gjør på UKA.no

authentication_group_parents henter sin data fra DAG-en som er beskrevet av public.gruppekobling. Den bruker også authentication_group_display for å massere data fra MDB litt. Ingenting vises på UKA.no uten et oppslag i authentication_group_display. Alle spørringer om foreldre/barn i UKA.no-koden ender opp med å JOIN-es gjennom tabellen, og dette gjør at vi kan «gjemme» og «flytte» eller «kopiere» våre kjere grupper.

Eksempelbruk av authentication_group_display:

-- Gjem gruppe med id 774 fra UKA.no
DELETE FROM authentication_group_display WHERE show_from = 774;

-- Flytt alle medlemmer av gruppe 801 til gruppe 744 på UKA.no. Gruppe 744 gjemmes permanent. Om gruppe 801 har flere «kopier» (se under) fra før, gies en «constraint violation».
UPDATE authentication_group_display SET show_in  744 WHERE show_from  801;

-- Vis all medlemmene av gruppe 801 også under gruppe 744 på UKA.no. Alle grupper kan kopieres til hvor det måtte være, men vær så snill å ikke skap sykler i DAG-en =)
INSERT INTO authentication_group_display (show_in, show_from) VALUES (744, 801);

Lenker: Start, medlemsdb2

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2011-07-02 19:08 | Revisjon: 3 (historie, blame) | Totalt: 1479 kB | Rediger