Lekce 5 - PostgreSQL - Import
V minulé lekci, PostgreSQL - Export, jsme si ukázali různé typy exportů databáze.
Dnes si v PostgreSQL tutoriálu vytvořenou zálohu (export) databáze a tabulky z lekce Export zkusíme naimportovat, tzn. nahrát na server nebo databázi.
Všechny soubory, které dnes budeme používat, si můžete stáhnout na konci této lekce, jestliže je již nemáte.
Import celé databáze
K importu zálohy celé databáze potřebujeme mít již nějakou databázi vytvořenou. Je jedno, jestli je daná databáze prázdná nebo jestli již nějaké tabulky obsahuje. My si ukážeme situaci, kdy ještě nemáme žádnou databázi, a proto si naši aktuální databázi smažeme (klikneme na ni pravým tlačítkem a zvolíme Delete/Drop):
Nyní si ji opět vytvoříme. Klikneme tedy pravým na složku Databases, zvolíme Create a Database...:
Pojmenovat ji můžeme stejně jako tu předchozí,
databaze_pro_web
, a vytvoření následně potvrdit tlačítkem
Save:
Nyní se již můžeme dát na samotný import. Využijeme k tomu soubor
databaze_pro_web.psql
, který máme vygenerovaný, nebo ho najdeme
přiložený na konci této lekce. V pgAdmin klikneme pravým tlačítkem na
naši novou databázi a zvolíme Restore...:
Konfigurace cest k utilitám
Je možné, že se nám zobrazí dialog vyzývající k tomu, abychom si
nejprve nakonfigurovali cestu k některým potřebným utilitám, pokud jsme tak
neučinili dříve. 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\
.
Nyní opět můžeme kliknout pravým tlačítkem na databázi a zvolit Restore.... Otevře se nám dialog, ve kterém můžeme zvolit formát importovaného souboru a jeho umístění. Z formátů máme na výběr pouze:
Custom or tar
- archiv typu.psql
nebo.tar
Directory
- složka s binárním souborem pro každou tabulku
Tímto způsobem nelze naimportovat .sql
soubor
(při exportu možnost Plain
).
Jelikož náš soubor je typu .psql
, tak zvolíme
Custom or tar
:
V záložce Restore options pak můžeme nastavit další podrobnosti importu. Například jestli chceme exportovat pouze data nebo pouze strukturu (schéma) a mnohé další:
Zde stojí za zmínku především položka Clean before restore. Ta zajistí vymazání obsahu databáze před samotným nahráním zálohy. U naší prázdné databáze nemá její zaškrtnutí moc význam, avšak jestli zálohu nahráváte na databázi s již vytvořenými tabulkami, tak tuto položku určitě zaškrtněte. V opačném případě by se pgAdmin např. snažil vytvořit již existující tabulku, což by vedlo k chybě a import by se nemusel správně dokončit.
Import potvrdíme tlačítkem Restore a pgAdmin nám oznámí jeho úspěšnost:
Import celé tabulky
Jelikož máme vygenerovaný .psql
soubor celé
tabulky uzivatel
i s jejími daty, tak si
ji nyní zkusíme naimportovat. Nejdříve si však tuto tabulku smažeme z
naší databáze, abychom viděli, že se import opravdu povedl:
Samotný import pak probíhá úplně stejně jako import databáze. Klikneme
tedy pravým tlačítkem na databázi, zvolíme Restore... a v dialogu
vybereme soubor uzivatel.psql
, formát a případně další
nastavení:
Nakonec potvrdíme tlačítkem Restore.
Import dat tabulky
Importu dat do existující tabulky můžeme docílit dvěma
způsoby. Buď použijeme možnost Restore... a .psql
soubor, anebo data naimportujeme z .csv
, .txt
nebo
.bin
souboru. My máme k dispozici .psql
i
.csv
, takže si ukážeme obě možnosti.
Mazání záznamů
Ještě než však začneme, tak si všechna aktuální data z tabulky smažeme. To můžeme udělat zavoláním tohoto SQL scriptu:
DELETE FROM uzivatel;
Nebo taky tak, že si zobrazíme všechna data pomocí možnosti View/Edit Data. Na nově otevřené stránce poté označíme všechny záznamy, klikneme na tlačítko Delete (ikona popelnice) a potvrdíme tlačítkem Save Data Changes (ikona databáze se zámkem):
Import dat z .csv
Teď už můžeme jít na import. Z naší tabulky uzivatel
,
bychom měli mít vygenerovaný tento .csv
soubor:
1,Jan,Novák,1984-11-03,17 2,Tomáš,Marný,1989-02-03,6 3,Josef,Nový,1972-12-20,9
Samozřejmě jej taktéž najdete ke stažení pod článkem.
Klikneme pravým tlačítkem na tabulku a zvolíme Import/Export....
V nově otevřeném dialogu přepneme na Import, vybereme náš soubor
a zvolíme formát csv
:
Vše ostatní necháme na výchozích hodnotách, jelikož při exportu jsme také nic neměnili.
V záložce Columns si potom můžeme zvolit, které sloupce chceme naimportovat:
Import potvrdíme tlačítkem OK a zkontrolujeme si naimportovaná data:
Import dat z .psql
K importu dat z .psql
souboru použijeme soubor
uzivatel.psql
. Nejprve ale musíme znovu vymazat všechny záznamy
z tabulky, např. pomocí SQL scriptu:
DELETE FROM uzivatel;
Nyní klikneme pravým tlačítkem na tabulku, zvolíme Restore... a
v dialogu vybereme soubor uzivatel.psql
, formát a případně
další nastavení:
V záložce Restore options si můžeme všimnout, že je automaticky vybraná položka Only data a nelze ji změnit. Import dokončíme tlačítkem Restore.
Tímto jsme ukončili téma exportu a importu databáze v pgAdmin
V následujícím kvízu, Kvíz - Tvorba, mazání, vkládání a export dat v PostgreSQL, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 46x (2.34 kB)
Aplikace je včetně zdrojových kódů v jazyce PostgreSQL