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 do template1 e não deve ser alterado em hipótese alguma. Esse template é muito útil para restauração de backups criados com o pg_dump. Esse banco também deve ser usado como molde quando quisermos criar novos bancos com caracter encoding e locale diferentes do definido no template1.

  • 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 do template1.

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)