Lekce 4 - PostgreSQL - Export
V minulé lekci, PostgreSQL - Vkládání a mazání dat v tabulce, jsme si ukázali vkládání a mazání záznamů.
Dnes si v PostgreSQL tutoriálu vyzkoušíme vyexportovat naši databázi, což se nám bude jistě mnohokrát hodit. Opět budeme používat pouze prostředí pgAdmin.
Export (nebo také "záloha") je soubor s SQL příkazy, který nám může sloužit na zálohu či migraci databáze nebo jen její části.
Export můžeme rozdělit na:
- kompletní export - soubor bude obsahovat jak strukturu tabulek, tak i jejich data
- export struktury - soubor bude obsahovat pouze strukturu
databáze
- takový export může obsahovat všechny nebo pouze vybrané tabulky
- export dat - soubor bude obsahovat pouze data tabulek
- tabulky můžeme specifikovat
Nejprve musíme mít nějakou databázi s daty, abychom je
mohli exportovat. Pokud žádnou z minulých lekcí nemáme, můžeme si
databázi i tabulku uzivatel
vytvořit podle této lekce.
Pokud v tabulce nemáme žádné záznamy, můžeme si jich pár znovu vložit
tímto SQL příkazem:
INSERT INTO uzivatel (jmeno, prijmeni, datum_narozeni, pocet_clanku) VALUES ('Jan', 'Novák', '1984-11-03', 17), ('Tomáš', 'Marný', '1989-02-03', 6), ('Josef', 'Nový', '1972-12-20', 9);
Máme v databázi tedy minimálně tři záznamy osob:
Konfigurace cest k utilitám
Je možné, že se nám v průběhu některého z exportů zobrazí dialog
vyzývající k tomu, abychom si nejprve nakonfigurovali cestu k některým
potřebným utilitám. To provedeme v nastavení (na horní liště klikneme na
File a poté Preferences) v záložce Binary paths.
Zde k verzi serveru, se kterým pracujeme, zadáme cestu ke složce
bin/
tohoto serveru:
Pokud jste při instalaci zvolili výchozí umístění, tak
vaše cesta bude pravděpodobně podobná té mé, tedy
C:\Program Files\PostgreSQL\14\bin\
.
Export dat
Zkusme si nejprve exportovat data konkrétní tabulky. To můžeme udělat tak, že pravým tlačítkem klikneme na danou tabulku a zvolíme Import/Export...:
Otevře se nám dialog, ve kterém můžeme nastavit, jestli chceme
exportovat nebo importovat a další podrobnější nastavení, jako je např.
formát a umístění exportu,
kódování nebo separátor mezi sloupci.
Z formátů máme na výběr:
binary
- pro.bin
souborycsv
- pro.csv
soubory, využívá se často pro export do programu MS Exceltext
- pro.txt
soubory
My zvolíme export do formátu csv
a nastavíme umístění
souboru. Kódování můžeme nechat nezvolené, v takovém případě se zvolí
UTF-8
. Vše ostatní necháme na výchozích hodnotách:
CSV (Comma Separated Values) je formát ukládání dat do textového souboru, ve kterém jsou data jednotlivých sloupců oddělena čárkou. Jeden řádek tabulky pak vždy odpovídá jednomu řádku v souboru.
V záložce Columns můžeme nastavit, jaké sloupce chceme v exportu zahrnout. My necháme výchozí nastavení, tedy všechny sloupce:
Export potvrdíme tlačítkem OK:
pgAdmin nás hned nato informuje o úspěšnosti exportu.
Když nyní otevřeme vygenerovaný soubor, tak uvidíme naše data:
1,Jan,Novák,1984-11-03,17 2,Tomáš,Marný,1989-02-03,6 3,Josef,Nový,1972-12-20,9
Soubor si uchovejte, budeme ho využívat pro budoucí import
Export celé tabulky
Pokud chceme exportovat celou tabulku, tzn. jak data, tak i strukturu tabulky, tak musíme kliknout pravým tlačítkem na danou tabulku a zvolit Backup...:
V dialogu, který se nám otevře, opět můžeme zvolit formát a umístění exportu. Z formátů máme na výběr:
Custom
- speciální archiv typu.psql
. Tento formát nabízí možnost vybrat, které databázové objekty se mají z exportu obnovit. Taktéž podporuje kompresi, jejíž poměr můžeme nastavit níže (maximální nastavitelná hodnota je9
).Tar
- archiv typu.tar
. Nepodporuje kompresi.Plain
- soubor s SQL příkazy pro vygenerování databázeDirectory
- složka s binárním souborem pro každou tabulku
My zvolíme možnost Custom
a nastavíme umístění souboru.
Vše ostatní opět necháme na výchozích hodnotách:
V tomto případě můžeme taktéž určit tzv. roli (možnost
Role name). Tyto role určují oprávnění pro provedení
nějaké akce na databázi nebo na její části. Zvolená role musí
mít potřebná oprávnění k provedení exportu a následnému importu. Jako
výchozí se nastaví role postgres
.
V záložce Dump options pak můžeme nastavit další podrobnosti exportu. Například jestli chceme exportovat pouze data nebo pouze strukturu (schéma), co neukládat a mnohé další:
Export potvrdíme tlačítkem Backup:
pgAdmin nás hned nato informuje o úspěšnosti exportu.
Soubor si uchovejte pro budoucí import.
Export celé databáze
Export celé databáze funguje skoro stejně jako export celé tabulky. Na databázi klikneme pravým tlačítkem, zvolíme Backup... a v nově otevřeném dialogu nastavíme formát a umístění exportu:
Export opět potvrdíme tlačítkem Backup:
pgAdmin nás informuje o úspěšnosti exportu.
Soubor si uchovejte pro budoucí import.
V další lekci, PostgreSQL - Import, si ukážeme import databáze.