Содержание

PostGIS

Шпаргалка по основным командам PostgreSQL

Вся работа с PostgreSQL осуществляется под пользователем postgres.

sudo su postgres

Работать с PosgreSQL можно как в интерактивном режиме, так и из командной строки. Программа — psql.

psql

Основные команды PostgreSQL в интерактивном режиме:

Работа с PostgreSQL из командной строки:

Примеры:

Выполнение команды в базе dbname

psql -U postgres -d dbname -c «CREATE TABLE my(some_id serial PRIMARY KEY, some_text text);» 

Вывод результата запроса в html-файл

psql -d dbname -H -c «SELECT * FROM my» -o my.html 

Утилиты (программы) PosgreSQL:

Примеры создания резервных копий:

Создание бекапа базы mydb, в сжатом виде

pg_dump -h localhost -p 5440 -U someuser -F c -b -v -f mydb.backup mydb

Создание бекапа базы mydb, в виде обычного текстового файла, включая команду для создания БД

pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb

Создание бекапа базы mydb, в сжатом виде, с таблицами которые содержат в имени payments

pg_dump -h localhost -p 5432 -U someuser -F c -b -v -t *payments* -f payment_tables.backup mydb

Дамп данных только одной, конкретной таблицы. Если нужно создать резервную копию нескольких таблиц, то имена этих таблиц перечисляются с помощью ключа -t для каждой таблицы.

pg_dump -a -t table_name -f file_name database_name

Создание резервной копии с сжатием в gz

pg_dump -h localhost -O -F p -c -U postgres mydb | gzip -c > mydb.gz

Список наиболее часто используемых опций:

Бекап всех баз данных используя команду pg_dumpall.

pg_dumpall > all.sql

Восстановление таблиц из резервных копий (бэкапов):

Восстановление бекапов, которые хранятся в обычном текстовом файле (plain text)

psql

Восстановление сжатых бекапов (tar)

pg_restore

Восстановление всего бекапа с остановкой на первой ошибке

psql -h localhost -U someuser —set ON_ERROR_STOP=on -f mydb.sql

Для восстановления из tar-арихива нам понадобиться сначала создать базу с помощью CREATE

DATABASE mydb; (если при создании бекапа не была указана опция -C) и восстановить
pg_restore —dbname=mydb —jobs=4 —verbose mydb.backup

Восстановление резервной копии БД, сжатой gz

gunzip mydb.gz
psql -U postgres -d mydb -f mydb

ERROR: must be owner of relation planet_osm_nodes

В окне терминала Ubuntu и из «renderaccount»:
Войдите в систему как встроенный пользователь Ubuntu «postgres»

sudo -u postgres -i

Подключиться к базе данных «gis»

postgres=# \c gis

Теперь вы подключены к базе данных «gis» как пользователь «postgres».
Список таблиц «gis»

gis=# \dt

Список отношений

Schema | Name | Type | Owner
--------+------------------+-------+---------------
public | planet_osm_nodes | table | postgres
public | planet_osm_rels | table | postgres
public | planet_osm_ways | table | postgres
public | spatial_ref_sys | table | renderaccount
(4 rows)

Изменить владельца таблиц

gis=# ALTER TABLE planet_osm_nodes OWNER TO renderaccount;
ALTER TABLE
gis=# ALTER TABLE planet_osm_rels OWNER TO renderaccount;
ALTER TABLE
gis=# ALTER TABLE planet_osm_ways OWNER TO renderaccount;
ALTER TABLE

Список таблиц «gis» для подтверждения изменений

gis=# \dt

Список отношений

Schema | Name | Type | Owner
--------+------------------+-------+---------------
public | planet_osm_nodes | table | renderaccount
public | planet_osm_rels | table | renderaccount
public | planet_osm_ways | table | renderaccount
public | spatial_ref_sys | table | renderaccount
(4 rows)

Оставьте «gis»

gis-# \q

Выйти «postgres»

exit

из системы

…снова в «renderaccount»

osm2pgsql -d gis --create --slim -G --hstore --tag-transform-script ~/src/openstreetmap-carto/openstreetmap-carto.lua -C 2500 --number-processes 1 -S ~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/bulgaria-latest.osm.pbf

…Proceed with the tutorial.