# Instalação e preparação

O arquivo `instalador.php` cuida dessa preparação em **duas etapas**, chamadas `v1` e `v2`. Cada etapa deve ser executada na ordem.

![Fluxo de instalação: primeiro cria o banco (v1), depois cria a tabela (v2).](https://kb.illimitar.pro/uploads/images/gallery/2026-06/embedded-image-4ryxdjdf.png)

Figura 4 — Fluxo de instalação: primeiro cria o banco (v1), depois cria a tabela (v2).

## Etapa 1 — Criar o banco de dados (v1)

<table id="bkmrk-item-detalhe-m%C3%A9todo-"><tbody><tr><th>Item</th><th>Detalhe</th></tr><tr><td>Método</td><td>`instalador::v1()`</td></tr><tr><td>Ação</td><td>`CREATE DATABASE IF NOT EXISTS franquia_osklen_relatorio`</td></tr><tr><td>Retorno de sucesso</td><td>`setSubmit(true, "Feito")`</td></tr><tr><td>Em caso de erro</td><td>Exceção registrada via `error_byexception()`</td></tr></tbody></table>

<div class="caixa-tecnica" id="bkmrk-url-de-instala%C3%A7%C3%A3o%3A%2Fb">**URL de instalação:**  
`/bibliotecas/6b5b2af8-ab25-4135-9551-b3cb3e055f1a/onebeat_pedidos_faturados/install`  
O instalador herda de `biblioteca` e usa a classe `util` para executar SQL com permissão elevada (`query($sql, true)`).</div>## Etapa 2 — Criar a tabela (v2)

A tabela `franquia_1beat` é criada com todos os campos necessários para armazenar pedidos, recebimentos e informações da filial. Detalhes completos no capítulo 7.

<table id="bkmrk-caracter%C3%ADstica-valor"><tbody><tr><th>Característica</th><th>Valor</th></tr><tr><td>Motor</td><td>InnoDB</td></tr><tr><td>Charset</td><td>utf8mb4</td></tr><tr><td>Chave primária</td><td>ID\_PRODUTO\_GRADE + COD\_FILIAL + ID\_FILIAL + ID\_MOVIMENTACAO\_PAI + CNPJ\_FILIAL</td></tr><tr><td>Índice adicional</td><td>IDX\_1BEAT\_SKU (campo SKU)</td></tr></tbody></table>

![Estrutura criada pelo instalador: um banco com uma tabela principal.](https://kb.illimitar.pro/uploads/images/gallery/2026-06/embedded-image-xxndcfle.png)

Figura 5 — Estrutura criada pelo instalador: um banco com uma tabela principal.

## Dependências

<div class="caixa-tecnica" id="bkmrk-classe-base-bibliote">- Classe base `biblioteca` (framework ISNAPP)
- Classe `util` do token `12262a22-30ab-11e9-bb4c-127101af6b0d`
- Array `$requires` está vazio — sem dependências de outras bibliotecas versionadas
- Bancos do tenant já devem existir: `{banco}`, `{banco}_relatorio`, `{banco}_integrador`

</div><div class="caixa-alerta" id="bkmrk-aten%C3%A7%C3%A3o%3A-a-instala%C3%A7%C3%A3">**Atenção:** a instalação só precisa ser feita *uma vez* por ambiente. Executar novamente é seguro graças ao `IF NOT EXISTS`, mas não é necessário em rotina.</div>