Vnútornosti LinuxOS - databáza

24.04.2016 | 19:00 | Mirecove dristy | Miroslav Bendík

V dnešnom bogu o vnútornostiach LinuxOS sa budem zaoberať databázou.

Databázový systém

Ako databázový systém používame momentálne Postgresql 9.1 (kódové meno vykopávka). Admini sa môžu k databáze prihlasovať lokálne cez psql klienta.

psql

Výpis tabuliek: (\dt)

výpistabuliek

Databázová schéma

Tu su rozpísané jednotlivé tabuľky v databáze (generované cez graph_models.

používateľskéúčty

Používateľské účty


prílohy

Prílohy


blackhole

Archív blackhole (pripravujem import článkov z blackhole.sk)


blogy

Blogy


komentáre

Komentáre


desktopy

Desktopy


fórum

Fórum


správy

Správy


poznámky

Poznámky


upozornenia

Upozornenia


ankety

Ankety


wiki

Wiki


Celá databázová schéma vyzerá takto.

Django modely

Modely sú popísané v súboroch models.py. Pri úprave databázového modelu stačí zmeniť príslušný záznam v models.py, vygenerovať migračný skript cez django-admin makemigrations a spustiť migračný skript cez django-admin migrate.

    • RE: Vnútornosti LinuxOS - databáza 26.04.2016 | 21:01
      Avatar Czako   Návštevník

      Mám otázku, v čom si kreslil tú databázovú schému? Hľadám dáky program čo by mi navrhol a spriehľadnil väčšiu db.

      • RE: Vnútornosti LinuxOS - databáza 27.04.2016 | 06:54
        Avatar Andrej Lacho Debian, CentOS ...  Administrátor

        generované cez graph_models

        • RE: Vnútornosti LinuxOS - databáza 27.04.2016 | 07:58
          Avatar Miroslav Bendík Gentoo  Administrátor

          Presne tak. Inak dajú sa nakresliť cez graphviz (graph_models generuje najskôr .dot súbor a ten schrúme graphviz). Takto vyzerá kód ktorý generuje graph_models:

          digraph model_graph {
          	graph [bb="1.4211e-14,0,264,295",
          		fontname=Helvetica,
          		fontsize=8,
          		splines=true
          	];
          	node [fontname=Helvetica,
          		fontsize=8,
          		label="\N",
          		shape=plaintext
          	];
          	edge [fontname=Helvetica,
          		fontsize=8
          	];
          	wiki_models_Page	 [height=2.9722,
          		label=<
              <TABLE BGCOLOR="palegoldenrod" BORDER="0" CELLBORDER="0" CELLSPACING="0">
              <TR><TD COLSPAN="2" CELLPADDING="4" ALIGN="CENTER" BGCOLOR="olivedrab4">
              <FONT FACE="Helvetica Bold" COLOR="white">
              Page<BR/>&lt;<FONT FACE="Helvetica Italic">MPTTModel,TimestampModelMixin</FONT>&gt;
              </FONT></TD></TR>
            
              <TR><TD ALIGN="LEFT" BORDER="0">
              <FONT FACE="Helvetica Bold">id</FONT>
              </TD><TD ALIGN="LEFT">
              <FONT FACE="Helvetica Bold">AutoField</FONT>
              </TD></TR>
          
          ...
          
              </TABLE>
              >,
          		pos="93,188",
          		width=2.5833];
          	wiki_models_Page -> wiki_models_Page	 [arrowhead=none,
          		arrowtail=dot,
          		dir=both,
          		label="parent (children)",
          		lp="234,188",
          		pos="s,186.12,208.48 193.48,205.08 200.04,201.1 204,195.41 204,188 204,178.12 196.95,171.3 186.12,167.52"];
          	accounts_models_User	 [height=0.5,
          		label=<
            <TABLE BGCOLOR="palegoldenrod" BORDER="0" CELLBORDER="0" CELLSPACING="0">
            <TR><TD COLSPAN="2" CELLPADDING="4" ALIGN="CENTER" BGCOLOR="olivedrab4">
            <FONT FACE="Helvetica Bold" COLOR="white">User</FONT>
            </TD></TR>
            </TABLE>
            >,
          		pos="93,18",
          		width=0.75];
          	wiki_models_Page -> accounts_models_User	 [arrowhead=none,
          		arrowtail=dot,
          		dir=both,
          		label="last_author (page)",
          		lp="126.5,58.5",
          		pos="s,93,80.603 93,72.596 93,58.41 93,45.561 93,36.002"];
          }