> ## Documentation Index
> Fetch the complete documentation index at: https://www.macaly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bancos de dados

> Entenda como o seu projeto armazena dados e como navegar por eles, editá-los e fazer backup

Todo projeto do Macaly vem com o seu próprio banco de dados. Tudo o que o seu site ou app precisa lembrar fica nele: mensagens do formulário de contato, e-mails de inscrições na newsletter, posts de blog, pedidos de reserva, contas de usuários e assim por diante.

Você não precisa configurar um banco de dados com um provedor, informar credenciais nem conectar nada. O Macaly cria um para você na primeira vez que o projeto precisar, e a aba **Banco de dados** do seu [chat](/docs/pt-BR/chat/overview) é o lugar onde você vê esses dados, trabalha com eles e baixa uma cópia.

<Callout icon="user">
  Disponível em todos os planos
</Callout>

## Como os bancos de dados funcionam no Macaly

Um banco de dados armazena informações para que elas continuem lá depois que a página é recarregada, prontas para você voltar a elas sempre que precisar. Pense nele como uma planilha que fica por trás do seu projeto, em que cada **linha** é um item, como um assinante, e cada **coluna** é uma informação, como o e-mail ou a data.

O Macaly cria um banco de dados para cada projeto automaticamente:

* **Pronto para usar**: ele é atualizado em tempo real e escala sozinho, sem nada para configurar do seu lado.
* **Isolado por projeto**: os dados de um projeto nunca se misturam com os de outro.
* **Hospedado na UE**: seus dados ficam com a Convex, na UE (Irlanda). Você encontra mais informações em [Segurança](/docs/pt-BR/security/overview).
* **Incluído no seu plano**: todo plano tem uma franquia mensal, e usar o banco de dados dentro dela não custa créditos. Você encontra mais informações em [Planos e créditos](/docs/pt-BR/welcome/pricing#uso-do-banco-de-dados).

Se o seu projeto ainda não tem um banco de dados, a aba Banco de dados mostra um botão **Configurar banco de dados**. Você também pode simplesmente descrever no chat o que quer armazenar, e o agente configura tudo para você.

## O seu banco de dados no chat

Suas **Tabelas** aparecem listadas à esquerda na aba Banco de dados, cada uma com a contagem atual de linhas. As tabelas que pertencem a bibliotecas usadas pelo seu projeto, como as de autenticação, ficam agrupadas abaixo e permanecem recolhidas até você abri-las. Clique no nome de uma tabela para abri-la na grade à direita.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-overview.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=83f7c2afaa12bdc676745735ce6aa892" alt="A aba Banco de dados com a lista de tabelas, uma tabela de reservas e os botões Exportar e Importar" width="2400" height="1674" data-path="images/database-overview.png" />

### Navegando e filtrando

* **Paginação**: as linhas são carregadas de 50 em 50 e continuam carregando conforme você rola a página. **Carregar mais**, no fim da tabela, busca mais linhas, ao lado de um contador que mostra quantas linhas a tabela tem.
* **Ordenação**: **Mais recentes primeiro** e **Mais antigos primeiro** invertem a ordem.
* **Filtragem**: **Filtro** permite restringir os dados. Escolha um campo, um operador e um valor e clique em **Aplicar**. Os operadores incluem é igual a, não é igual a, é maior que, é menor que, existe, não existe e correspondência por tipo. Adicione mais condições e elas são combinadas com "e". **Limpar filtros** remove todas elas.
* **Atualizações ao vivo**: as linhas que o seu app cria enquanto você olha a tabela aparecem sozinhas.

Os campos que apontam para outra tabela são exibidos como links. Clique em um deles para ir direto à linha a que ele se refere.

### Editando linhas

Você pode alterar os dados direto na grade, sem passar pelo agente.

* **Clique em uma célula de texto** para editá-la ali mesmo. Pressione Enter para salvar ou Escape para cancelar. As caixas de seleção alternam com um único clique.
* **Clique em uma linha** para abrir um formulário com um campo por coluna. Você pode inserir números, datas, listas e referências, ver quais campos são obrigatórios e copiar a linha como JSON se quiser tê-la na área de transferência. Clique em **Salvar** quando terminar.
* **Adicionar linha** cria uma nova linha na tabela que você está vendo, com base nos campos que o Macaly já conhece.
* **Marque uma ou mais linhas** para ver um botão **Excluir**. A caixa de seleção na linha de cabeçalho seleciona a tabela inteira. O Macaly pede que você confirme. As exclusões não podem ser desfeitas.

<Note>
  A aba Banco de dados serve para os dados, não para a estrutura. Criar, renomear e excluir tabelas, e alterar quais campos uma tabela tem, fica no código do seu projeto, então quem cuida disso é o agente. Peça no chat, por exemplo: "Adicione um campo de telefone à tabela Leads."
</Note>

### Baixando e restaurando

No fim da lista de **Tabelas** você encontra **Exportar** e **Importar**.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-import-export.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=c82b8b3706c218f42d424bbd5db57d12" alt="Os botões Exportar e Importar no fim da lista de tabelas" width="2400" height="1674" data-path="images/database-import-export.png" />

**Exportar** empacota o seu banco de dados em um snapshot e o baixa como um arquivo ZIP com todas as tabelas e todas as linhas. Use quando quiser ter o seu próprio backup antes de mudanças maiores ou trabalhar com os seus dados fora do Macaly.

**Importar** restaura um snapshot em ZIP no banco de dados que você está vendo. Ele substitui tudo o que já existe ali, então o Macaly mostra o nome do arquivo escolhido e pede que você confirme com **Substituir e importar**. Isso não pode ser desfeito, então exporte antes o estado atual, caso queira recuperá-lo. Quando a importação termina, o Macaly informa quantas linhas foram gravadas e recarrega a prévia. Você pode testar um snapshot no seu banco de dados de teste antes de usá-lo com dados reais.

As duas ações são executadas no seu navegador, então deixe a aba aberta até terminarem. Bancos de dados grandes podem demorar um pouco.

<Note>
  Os arquivos que o seu projeto armazena, como imagens ou documentos enviados, não fazem parte do snapshot. O snapshot cobre apenas os dados das tabelas.
</Note>

## Bancos de dados de produção e de teste

Por padrão, o seu projeto usa um único banco de dados de **Produção**, compartilhado pelo seu site publicado e pela prévia do chat. Qualquer alteração que você fizer enquanto constrói aparece no site publicado na mesma hora. Adicionar um banco de dados de **Teste** cria uma cópia separada para você trabalhar, sem alterar os dados que os seus usuários veem.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-live-testing.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=f6b8015492155557cdef8adf4735eb2c" alt="A aba Banco de dados alternada para o banco de dados de teste, mostrando os botões Produção e Teste" width="2400" height="1674" data-path="images/database-live-testing.png" />

### Adicionando um banco de dados de teste

1. Abra a aba **Banco de dados** no seu chat.
2. Clique em **Adicionar modo de teste**.
3. Aguarde a configuração terminar.

O Macaly cria um segundo banco de dados e copia para ele os seus dados de Produção.

<Note>
  Se o seu app já armazena arquivos enviados pelos seus usuários (veja [Arquivos enviados por usuários do app](/docs/pt-BR/chat/assets#arquivos-enviados-por-usuários-do-app)), o banco de dados de teste começa vazio.
</Note>

### Deixando o agente escolher o Teste

Quando o seu projeto está publicado e tem dados reais, o agente consulta você antes de alterar o backend. Quando um pedido envolve o banco de dados ou funções do servidor, ele pergunta: **Your published app is using Live data. Where should I make these Convex changes?**

* **Develop in Testing**: o agente cria ou seleciona o seu banco de dados de teste e faz as alterações nele. Enquanto isso, os seus usuários continuam trabalhando com os dados de Produção.
* **Continue on Live**: o agente altera o app publicado e os dados dele.

Escolha o Teste quando a alteração puder quebrar algo de que os seus usuários dependem, como renomear um campo ou refazer um formulário que grava no banco de dados.

### Alternando entre os bancos de dados

Use os botões **Produção** e **Teste** no topo da aba para alternar entre os dois bancos de dados. Ao alternar, o seu projeto passa a apontar para o banco de dados selecionado e a prévia é reconstruída, então o chat e a prévia leem e editam o banco que você escolheu.

O trabalho que você faz no Teste continua alterando o código do seu projeto. Quando você volta para o banco de dados de Produção, o Macaly reimplanta o esquema e as funções, então as mudanças estruturais feitas durante o teste passam para o projeto publicado. Os dados em si ficam no banco de dados de teste.

### Publicando a partir do Teste

Você pode publicar enquanto o banco de dados de teste está ativo. Quando você clica em **Publicar**, o Macaly promove o seu código para Produção depois de uma verificação de compatibilidade, enquanto o chat e a prévia continuam no Teste. Os dados e os segredos do Teste nunca são copiados para a Produção.

A verificação de compatibilidade garante que as suas alterações continuem funcionando com os dados que o seu app publicado já tem. Se não funcionarem, a janela de publicação mostra **As alterações no banco de dados precisam de atenção** e oferece **Resolver problema**. Clique nele e o agente ajusta as alterações para que funcionem com os seus dados de Produção, e então você pode publicar de novo.

A publicação também é interrompida se o código do app o conectar diretamente ao banco de dados de teste. A janela de publicação mostra **O app está conectado ao banco de dados de teste**. Clique em **Corrigir com IA** e o agente conecta o app ao banco de dados de Produção, e então você pode publicar de novo.

<Note>
  Publicar a partir do Teste está disponível apenas para projetos com Git. Nos outros projetos, a janela de publicação mostra **Banco de dados de teste ativo** e você precisa clicar em **Mudar para Produção** antes de publicar.
</Note>

## Duplicando o seu próprio projeto

Quando você duplica seu próprio chat, a cópia obtém um banco de dados separado. Macaly copia os dados da tabela atual onde há suporte; projetos mais antigos com uma configuração herdada de App Files podem começar com um banco de dados vazio e nenhum arquivo carregado. Uma duplicata não restaura dados de um momento anterior.

Um projeto duplicado da [galeria da comunidade](/docs/pt-BR/community/showcase) sempre começa com um banco de dados vazio.

## Exemplos de uso de um banco de dados

Você vai recorrer a um banco de dados com mais frequência para funcionalidades como estas:

* **Formulários de contato**: armazene as mensagens que as pessoas enviam pelo seu formulário de contato ou de solicitação.
* **Newsletters**: reúna endereços de e-mail e acompanhe quando cada pessoa se inscreveu.
* **Gerenciamento de conteúdo**: crie um sistema que guarde seus posts de blog, estudos de caso, avaliações ou comentários.
* **Reservas e solicitações**: armazene pedidos de agendamento e inscrições em eventos.
* **Painéis de administração**: crie uma página interna para revisar envios de formulários, gerenciar assinantes ou moderar conteúdo.
* **Notificações**: receba um e-mail quando alguém preencher um formulário ou um novo cadastro chegar ao seu banco de dados.

Você não precisa projetar a estrutura sozinho. Descreva o que quer armazenar, e o agente cria a tabela e a conecta ao seu projeto.

**Exemplos de prompts:**

```
Adicione um banco de dados chamado "Leads" para os envios do formulário
de contato, com nome, e-mail, telefone e mensagem. Conecte o formulário
de contato para que cada envio seja salvo automaticamente e me mande um
e-mail de notificação a cada envio.
```

```
Crie um banco de dados de artigos, com título, descrição, conteúdo,
imagem e data de publicação, e use-o para exibir uma lista de posts de
blog no site.
```

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Preciso configurar um banco de dados?">
    Não. Todo projeto do Macaly recebe um automaticamente. Você não precisa configurar nada com um provedor, informar credenciais nem conectar coisa alguma. Descreva o que você quer armazenar, como envios de formulários de contato ou posts de blog, e o agente cria as tabelas e as integra ao seu projeto.
  </Accordion>

  <Accordion title="Qual banco de dados o Macaly usa?">
    O Macaly usa o Convex. Cada projeto tem o próprio banco de dados isolado, com atualizações em tempo real e escalonamento automático, hospedado na UE. Veja [Bancos de dados](/docs/pt-BR/features/databases).
  </Accordion>

  <Accordion title="O banco de dados tem custo extra?">
    O banco de dados está incluído em todos os planos, e ficar dentro da franquia mensal de uso não consome créditos. Nos planos Starter, Pro e Agência, o uso acima da franquia é cobrado em créditos. No Starter, no Pro e no Agência, cada 1 GiB adicional iniciado custa 200K de créditos. No Starter, no Pro e no Agência, cada 100.000 chamadas de API de backend adicionais custam 200K de créditos. A franquia é contada no workspace inteiro e é zerada no início de cada mês do calendário. Se você fizer upgrade do plano Gratuito ou Hospedagem no meio do mês, a franquia do plano pago começa no upgrade e o uso anterior nunca é cobrado. Os detalhes estão em [Planos e créditos](/docs/pt-BR/welcome/pricing#uso-do-banco-de-dados).
  </Accordion>

  <Accordion title="Como vejo e edito meus dados?">
    A aba **Banco de dados** lista suas tabelas e mostra as linhas de cada uma. Você pode filtrar e ordenar, editar valores ali mesmo, adicionar linhas ou excluí-las. A criação de tabelas e a mudança dos campos delas acontecem no código do seu projeto, então peça isso ao agente, por exemplo: "Adicione um campo de telefone à tabela Leads."
  </Accordion>

  <Accordion title="Posso trabalhar com dados de teste em vez dos dados reais?">
    Sim. Na aba **Banco de dados**, clique em **Adicionar modo de teste** e o Macaly cria um banco de dados de **Teste**, uma cópia separada dos seus dados em que você pode trabalhar sem alterar o que seus usuários veem. Você pode alternar entre os bancos de **Produção** e de **Teste** quando quiser e publicar a partir de qualquer um deles. Ao publicar a partir do Teste, uma verificação de compatibilidade roda primeiro para que seu app publicado continue funcionando com os dados existentes.
  </Accordion>

  <Accordion title="Como baixo uma cópia dos meus dados?">
    **Exportar**, na aba **Banco de dados**, baixa um ZIP com um instantâneo dos dados das suas tabelas, e **Importar** restaura um deles. Os arquivos que seu projeto armazena, como imagens enviadas, não fazem parte desse arquivo. Guarde um instantâneo antes de mudanças maiores, já que excluir linhas e importar um instantâneo substituem os dados de forma permanente.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.