Viac

Exportovať databázu postgis


Som úplne nový v úžasnom svete PostGIS, takže je mi ľúto možno hlúpej otázky.

Po chvíli som bol schopný nainštalovať postgres a postgis na svoj počítač (testovanie Debianu) a tiež som mohol vytvoriť nejaké databázy.

Cez DB manažéra QGIS som importoval nejaký tvarový súbor do databázy a je to v poriadku.

Ale teraz, keď chcem exportovať celú databázu postgis db ako jeden súbor (ako to robí SpatiaLite), ako to môžem urobiť? Myslím, že Spatialite vytvára a reálny súbor do adresára, zatiaľ čo postgis no (alebo aspoň som ho nenašiel).

Vďaka chlapci a prepáčte za jednoduchú otázku


Prevzaté z manuálu: Databázu PostgreSQL môžete exportovať do súboru pomocou programu príkazového riadku pg_dump, alebo môžete použiť phpPgAdmin.

pg_dump -U USERNAME DBNAME> dbexport.pgsql

http://www.a2hosting.com/kb/developer-corner/postgresql/import-and-export-a-postgresql-database


Prezrite si schémy Postgres (ktoré sa veľmi ľahko používajú)

Všeobecne je dobrým zvykom používať inú schému ako predvolená verejná schéma. Dôvod je ten, že keď exportujete databázu, získate všetky objekty, funkcie, tabuľky, tabuľky PostGis atď., Ktoré sú tam nainštalované.

Robím to tak, že v databáze vytvorím schému, napríklad „dáta“

vytvoriť údaje schémy;

Potom som nastavil túto schému ako predvolenú pomocou

zmeniť databázu "mydb" set search_path = data, public;

Nie je nevyhnutné nastavovať cestu vyhľadávania, môžete použiť odkaz na tabuľku ako schema.table

data.mytable

vo všetkých názvoch tabuliek, ale použitie predvoleného znamená, že môžete presúvať údaje medzi schémou a jeden jednoduchý prepínač príkazov SQL medzi nimi, čo je skvelé na aktualizáciu produkčných údajov atď.

Pri exporte databázy jednoducho exportujte konkrétnu schému pomocou príkazu pg_dump s

--schema = schemaName

Ak máte veľa tabuliek na presun medzi schémami, môžete použiť nasledujúci SQL

vytvoriť údaje schémy; zmeniť databázu „** DBNAME **“ nastaviť vyhľadávacia_cesta = dáta, verejné; DO $$ DECLARE záznam v riadku; ZAČNITE PRE riadok vo VÝBERE tablename FROM pg_tables WHERE schemaname = 'public' - a v prípade potreby ďalšie podmienky LOOP EXECUTE 'ALTER TABLE public.' || quote_ident (row.tablename) || 'SET SCHEMA data;'; KONIEC SLUČKY; KONIEC; $$;

Pri obnove do inej databázy ju obnovte do inej schémy, ako je verejná. Týmto spôsobom nikdy nedôjde ku konfliktom s objektmi vo verejnej schéme, vďaka čomu je ľahké zálohovať a presúvať priestorové údaje.


Pozri si video: Import demo data error 500 WordPress solution (Septembra 2021).