1.3. Criando um Novo Banco de Dados no PostgreSQL
Um mesmo servidor PostgreSQL pode gerenciar diversos bancos de dados (repositórios físicos de dados).
Durante a instalação do PostgreSQL é executado um programa chamado initdb
que realiza a criação de alguns bancos de dados fundamentais ao sistema:
template1
: Esse banco de dados é criado durante a preparação da área de armazenamento de um servidor PostgreSQL. Ele é usado como o molde (template
) padrão para criação de novos bancos, quando não indicamos um específico.template0
: Esse banco de dados contém exatamente as mesmas definições dotemplate1
e não deve ser alterado em hipótese alguma. Esse template é muito útil para restauração de backups criados com opg_dump
. Esse banco também deve ser usado como molde quando quisermos criar novos bancos com caracter encoding e locale diferentes do definido notemplate1
.postgres
: Esse banco de dados é criado na instalação do PostgreSQL e serve como o banco padrão para conexão de todos os usuários. Trata-se de uma cópia dotemplate1
.
Para criar um novo banco de dados é necessário estar conectado a algum banco. Em geral, é utilizado o banco denominado postgres
para esta finalidade. Além disso, é necessário indicar um banco de molde ou template para que seja realizada uma cópia física desse banco (clone). O banco de dados template1
, geralmente, é utilizado como molde.
O comando SQL CREATE DATABASE
pode ser utilizado para criar um novo banco de dados:
CREATE DATABASE geocredito TEMPLATE template1;
Nota
O comando acima permite utilizar qualquer banco de dados como template. A única restrição é que o banco utilizado como template não pode ter sessões ativas.
Nota
Em algumas instalações do PostgreSQL com o PostGIS, será criado um banco de dado template denominado template_postgis
, que já vem preparado com todo o suporte geoespacial.
Dica
A tabela do catálogo do sistema chamada pg_database
contém a lista de bancos de dados existentes no cluster PostgreSQL:
SELECT datname FROM pg_database;
De maneira similar, o meta-comando \l
no psql fornece uma listagem dos bancos de dados existentes.
1.3.1. Habilitando a Extensão PostGIS
O comando CREATE EXTENSION
possibilita carregar a extensão PostGIS no banco de dados criado:
CREATE EXTENSION postgis;
Para saber as configurações da extensão PostGIS carregada, utilize a função postgis_full_version
:
SELECT postgis_full_version();
Resultado:
postgis_full_version
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="3.4.2 c19ce56" [EXTENSION] PGSQL="160" GEOS="3.9.0-CAPI-1.16.2" PROJ="7.2.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" LIBXML="2.9.10" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)"
(1 row)