Pular para o conteúdo principal

Configuração

O PersonaDB tem pouquíssima configuração global — por desenho, quase tudo é parâmetro explícito de função ou flag de CLI. O que existe está em persona_db/.env.example:

DATABASE_URL=postgresql://persona:persona@localhost:5432/personadb
SEED=7
N_PESSOAS=10000
PERSONADB_TODAY=2026-01-01

Variáveis de ambiente​

VariávelLida porPadrãoEfeito
DATABASE_URLbulk_insert, document_schema, Makefile—Conexão PostgreSQL usada na carga, no migrate e na documentação a partir do catálogo vivo
PERSONADB_TODAYpersona_db.generators.gen_00_pessoa.simulation_today()2026-01-01Âncora temporal de toda a simulação
SEEDMakefile7Semente mestre repassada aos alvos generate, validate e benchmark
N_PESSOASMakefile10000 (100 em validate)Quantidade de personas dos alvos do Makefile
PYTHONPATHMakefile..Garante que persona_db seja importável sem instalação

A âncora temporal​

DEFAULT_TODAY = date(2026, 1, 1)

def simulation_today() -> date:
raw = os.environ.get("PERSONADB_TODAY")
if raw:
return date.fromisoformat(raw)
return DEFAULT_TODAY

Nenhum gerador chama date.today(). Todas as idades, validades de documentos, datas de contrato, diagnósticos e óbitos são calculadas em relação a essa âncora. Consequências práticas:

  • O dataset gerado hoje e daqui a um ano são idênticos para a mesma semente.
  • Mudar PERSONADB_TODAY reposiciona toda a linha do tempo (as pessoas "envelhecem").
  • Os validadores usam a mesma âncora, então regras do tipo "data não pode estar no futuro" são estáveis.
PERSONADB_TODAY=2030-06-30 python3 -m persona_db.scripts.generate --personas 50 --seed 7 --dry-run

:::tip Use ISO-8601 O valor é lido com date.fromisoformat, portanto precisa estar no formato AAAA-MM-DD. Um valor inválido levanta ValueError logo no início da geração. :::

Parâmetros por linha de comando​

Qualquer parâmetro relevante também existe como flag, e a flag vence sobre o ambiente:

ParâmetroFlagCLIs
Nº de personas--personas / --peoplegenerate (os dois nomes)
Nº de personas--personasrun_validators
Nº de personas--peoplebenchmark
Semente--seedgenerate, run_validators, benchmark
Subconjunto de domínios--domainsgenerate
Saída JSON--json-out / --outputgenerate (os dois nomes)
Relatório HTML--html-reportgenerate
Relatório HTML--html-outrun_validators
Conexão--database-urlbulk_insert, document_schema
Tamanho do lote de INSERT--page-sizebulk_insert

Arquivos gerados em disco​

CaminhoOrigemVersionado?
dataset.jsonscripts.generate --outputnão
report.html--html-reportnão
persona_db/data/rng_log.jsonlengines.rng.register_seed()não (criado sob demanda, falhas de escrita são ignoradas)
persona_db/docs/SCHEMA.mdscripts.document_schemasim
website/docs/referencia-api/, website/docs/schema/npm run gen:docsnão (derivado do código)