🗄️ Carga Inicial e Gestão de Banco de Dados
Este guia detalha o processo de inicialização do banco de dados do e-SUS AF a partir do zero, garantindo que a estrutura e os dados básicos sejam carregados corretamente.
1. Estrutura de Scripts SQL
Os scripts de banco de dados do projeto estão organizados em dois diretórios principais, seguindo uma nomenclatura baseada em timestamp (YYYYMMDDHHMMSS-nome.sql) para garantir a ordem correta de execução.
database/postgres/: Contém scripts de DDL (Data Definition Language) para criação de tabelas, índices e visões.database/data/: Contém scripts de DML (Data Manipulation Language) para carga de dados iniciais (tabelas de domínio, parâmetros, etc).
2. Inicialização do Zero
Para carregar o banco de dados em uma instância limpa do PostgreSQL, siga os passos abaixo:
2.1 Carga de Estrutura (DDL)
Navegue até a raiz do repositório e execute os scripts da pasta postgres em ordem:
# Exemplo usando Bash para automação
for f in $(ls database/postgres/*.sql | sort); do
echo "Executando $f..."
psql -h <HOST> -d <BANCO> -U <USUARIO> -f $f
done
2.2 Carga de Dados Iniciais (DML)
Após a criação da estrutura, realize a carga dos dados básicos:
for f in $(ls database/data/*.sql | sort); do
echo "Carregando dados de $f..."
psql -h <HOST> -d <BANCO> -U <USUARIO> -f $f
done
3. Gestão de Mudanças
Para ambientes já implantados, a atualização deve ser feita identificando os scripts novos através do git diff, conforme detalhado na seção de Atualização do Sistema.
[!WARNING] Nunca execute scripts fora da ordem cronológica definida pelo timestamp, pois isso pode quebrar as restrições de chave estrangeira.