> ## 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.

# Bases de dados

> Sabe como o teu projeto guarda dados e como navegar, editar e fazer cópias de segurança

Cada projeto Macaly vem com a sua própria base de dados. Tudo o que o teu site ou app precisa de guardar fica lá: mensagens do teu formulário de contacto, endereços de email de subscrições à newsletter, artigos de blogue, pedidos de reserva, contas de utilizador, e por aí fora.

Não precisas de configurar nada com um fornecedor, introduzir credenciais ou ligar qualquer coisa. O Macaly cria uma para ti na primeira vez que o teu projeto precisa dela, e o separador **Base de dados** no teu [chat](/docs/pt/chat/overview) é onde vês esses dados, trabalhas com eles e transferes uma cópia.

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

## Como funcionam as bases de dados no Macaly

Uma base de dados guarda informação para que continue lá depois de a página recarregar, pronta para voltares a ela sempre que precisares. Pensa nela como uma folha de cálculo que existe por trás do teu projeto, onde cada **linha** é um item, como um subscritor, e cada **coluna** é uma informação, como o email ou a data.

O Macaly cria uma base de dados para cada projeto automaticamente:

* **Pronta a usar**: atualiza-se em tempo real e escala sozinha, sem nada para configurares da tua parte.
* **Isolada por projeto**: os dados de um projeto nunca se podem misturar com os dados de outro.
* **Alojada na UE**: os teus dados são guardados pela Convex na UE (Irlanda). Encontras mais informação em [Segurança](/docs/pt/security/overview).
* **Incluída no teu plano**: cada plano tem uma quota mensal, e usar a base de dados dentro dela não consome créditos. Encontras mais informação em [Planos e créditos](/docs/pt/welcome/pricing#uso-da-base-de-dados).

Se o teu projeto ainda não tiver uma base de dados, o separador Base de dados mostra um botão **Configurar base de dados**. Também podes simplesmente descrever o que queres guardar no chat, e o agente configura-a por ti.

## A tua base de dados no chat

As tuas **Tabelas** estão listadas à esquerda do separador Base de dados, cada uma com a sua contagem atual de linhas. As tabelas que pertencem a bibliotecas usadas pelo teu projeto, como as que estão por trás da autenticação, estão agrupadas por baixo e ficam recolhidas até as abrires. Clica no nome de uma tabela para a abrir na grelha à direita.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-overview.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=83f7c2afaa12bdc676745735ce6aa892" alt="O separador Base 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" />

### Navegar e filtrar

* **Paginação**: as linhas carregam 50 de cada vez e continuam a carregar à medida que percorres a página. **Carregar mais**, no fundo, obtém mais linhas, junto a um contador que mostra quantas linhas a tabela tem.
* **Ordenação**: **Mais recentes primeiro** e **Mais antigos primeiro** invertem a ordem.
* **Filtragem**: **Filtro** permite-te restringir os dados. Escolhe um campo, um operador e um valor, e clica em **Aplicar**. Os operadores incluem é igual a, não é igual a, maior que, menor que, existe, não existe, e correspondência por tipo. Adiciona mais condições e elas combinam-se com "e". **Limpar filtros** remove-os novamente.
* **Atualizações em tempo real**: as linhas que a tua app cria enquanto estás a ver a tabela aparecem por si próprias.

Os campos que apontam para outra tabela aparecem como links. Clica num deles para ires diretamente à linha a que se refere.

### Editar linhas

Podes alterar dados diretamente na grelha, sem passar pelo agente.

* **Clica numa célula de texto** para a editar ali mesmo. Prime Enter para guardar, ou Escape para cancelar. As caixas de verificação alternam com um único clique.
* **Clica numa linha** para abrir um formulário com um campo por coluna. Podes introduzir números, datas, listas e referências, ver quais os campos obrigatórios, e copiar a linha como JSON caso a queiras na área de transferência. Clica em **Guardar** quando terminares.
* **Adicionar linha** cria uma nova linha na tabela que estás a ver, com base nos campos que o Macaly já conhece.
* **Assinala uma ou mais linhas** para obteres um botão **Eliminar**. A caixa de verificação na linha do cabeçalho seleciona a tabela inteira. O Macaly pede-te para confirmares. As eliminações não podem ser anuladas.

<Note>
  O separador Base de dados serve para dados, não para estrutura. Criar, mudar o nome e eliminar tabelas, e alterar os campos que uma tabela tem, faz parte do código do teu projeto, por isso é o agente que trata disso. Pede-lhe no chat, por exemplo: "Adiciona um campo de telefone à tabela Leads."
</Note>

### Transferir e restaurar

No fundo da lista de **Tabelas** encontras **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 fundo da lista de tabelas" width="2400" height="1674" data-path="images/database-import-export.png" />

**Exportar** empacota a tua base de dados num instantâneo e transfere-o como um ficheiro ZIP que contém todas as tabelas e todas as linhas. Usa-o quando quiseres manter a tua própria cópia de segurança antes de alterações maiores ou trabalhar com os teus dados fora do Macaly.

**Importar** restaura um instantâneo ZIP na base de dados que estás a ver no momento. Substitui tudo o que já lá está, por isso o Macaly indica o nome do ficheiro que escolheste e pede-te para confirmares com **Substituir e importar**. Isto não pode ser anulado, por isso exporta primeiro o estado atual caso o queiras recuperar. Quando a importação terminar, o Macaly diz-te quantas linhas foram escritas e recarrega a pré-visualização. Podes experimentar um instantâneo na tua base de dados de teste antes de o usares em dados reais.

Ambas as ações correm no teu navegador, por isso deixa o separador aberto até terminarem. Bases de dados grandes podem demorar algum tempo.

<Note>
  Os ficheiros que o teu projeto guarda, como imagens ou documentos enviados, não fazem parte do instantâneo. O instantâneo abrange apenas os dados das tabelas.
</Note>

## Bases de dados Live e Testing

Por predefinição, o teu projeto usa uma única base de dados **Live**, partilhada pelo teu site publicado e pela pré-visualização do teu chat. Qualquer alteração que faças enquanto constróis aparece de imediato no site publicado. Adicionar uma base de dados **Testing** cria uma cópia separada para trabalhares, sem alterar os dados que os teus utilizadores 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="O separador Base de dados mudado para a base de dados Testing, mostrando os botões Live e Testing" width="2400" height="1674" data-path="images/database-live-testing.png" />

### Adicionar uma base de dados de teste

1. Abre o separador **Base de dados** no teu chat.
2. Clica em **Adicionar modo de teste**.
3. Espera que a configuração termine.

O Macaly cria uma segunda base de dados e copia para ela os teus dados Live.

<Note>
  Se a tua app já guarda ficheiros carregados pelos seus utilizadores (vê [Ficheiros enviados por utilizadores](/docs/pt/chat/assets#ficheiros-enviados-por-utilizadores)), a base de dados Testing começa vazia.
</Note>

### Deixar o agente escolher Testing

Assim que o teu projeto está publicado e tem dados reais, o agente consulta-te antes de mexer no backend. Quando um pedido toca na base de dados ou nas funções de 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 a tua base de dados Testing e faz lá as alterações. Entretanto, os teus utilizadores continuam a trabalhar com os dados Live.
* **Continue on Live**: o agente altera a app publicada e os seus dados.

Escolhe Testing quando a alteração puder estragar algo de que os teus utilizadores dependem, como mudar o nome de um campo ou refazer um formulário que escreve na base de dados.

### Alternar entre bases de dados

Usa os botões **Live** e **Testing** no topo do separador para alternares entre as duas bases de dados. Alternar aponta o teu projeto para a base de dados selecionada e reconstrói a pré-visualização, por isso o chat e a pré-visualização passam ambos a ler e a editar a que selecionaste.

O trabalho que fazes em Testing continua a alterar o código do teu projeto. Quando voltas à base de dados Live, o Macaly reimplementa o esquema e as funções, por isso as alterações estruturais que fizeste durante os testes transitam para o teu projeto publicado. Os próprios dados ficam na base de dados Testing.

### Publicar a partir de Testing

Podes publicar mesmo com a base de dados Testing ativa. Quando clicas em **Publicar**, o Macaly leva o teu código para Live depois de uma verificação de compatibilidade, enquanto o chat e a pré-visualização continuam em Testing. Os dados e os secrets de Testing nunca são copiados para Live.

A verificação de compatibilidade confirma que as tuas alterações continuam a funcionar com os dados que a app publicada já tem. Se não funcionarem, a janela de publicação mostra **As alterações na base de dados precisam de atenção** e oferece **Resolver problema**. Clica e o agente ajusta as alterações aos teus dados Live; depois já podes publicar.

A publicação também é interrompida se o código da app a ligar diretamente à base de dados Testing. A janela de publicação mostra **A app está ligada à base de dados de teste**. Clica em **Corrigir com IA** e o agente liga a app à base de dados Live; depois já podes publicar.

<Note>
  Publicar a partir de Testing só está disponível em projetos com Git. Nos restantes, a janela de publicação mostra **Base de dados de teste ativa** e tens de clicar em **Alterar para a ativa** antes de poderes publicar.
</Note>

## Duplicar um projeto teu

Quando duplicas o teu chat, a cópia recebe uma base de dados separada. O Macaly copia os dados atuais das tabelas quando possível; projetos mais antigos que usam App Files podem começar com uma base de dados vazia e sem ficheiros enviados. Duplicar não recupera dados de um momento anterior.

Um projeto duplicado da [galeria da comunidade](/docs/pt/community/showcase) começa sempre com uma base de dados vazia.

## Exemplos de utilização de uma base de dados

Vais recorrer a uma base de dados mais frequentemente para funcionalidades como estas:

* **Formulários de contacto**: guarda as mensagens que as pessoas enviam através do teu formulário de contacto ou de pedido de informação.
* **Newsletters**: recolhe endereços de email e regista quando cada pessoa subscreveu.
* **Gestão de conteúdo**: cria um sistema que guarda os teus artigos de blogue, casos de estudo, avaliações ou comentários.
* **Reservas e pedidos**: guarda pedidos de marcação e inscrições em eventos.
* **Painéis de administração**: cria uma página interna para rever submissões de formulários, gerir subscritores ou moderar conteúdo.
* **Notificações**: recebe um email quando alguém preenche um formulário ou um novo registo chega à tua base de dados.

Não precisas de desenhar a estrutura tu mesmo. Descreve o que queres guardar, e o agente cria a tabela e liga-a ao teu projeto.

**Exemplos de pedidos:**

```
Adiciona uma base de dados chamada "Leads" para submissões do formulário
de contacto, com nome, email, telefone e mensagem. Liga o formulário de
contacto para que cada submissão seja guardada automaticamente, e
envia-me uma notificação por email de cada vez.
```

```
Cria uma base de dados de artigos, com título, descrição, conteúdo,
imagem e data de publicação, e usa-a para mostrar uma lista de artigos
de blogue no site.
```

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Preciso de configurar uma base de dados?">
    Não. Todos os projetos Macaly recebem uma automaticamente. Não precisas de configurar nada com um fornecedor, introduzir credenciais nem ligar seja o que for. Descreve o que queres guardar, como submissões de formulários de contacto ou artigos de blog, e o agente cria as tabelas e integra-as no teu projeto.
  </Accordion>

  <Accordion title="Que base de dados usa o Macaly?">
    O Macaly usa o Convex. Cada projeto tem a sua própria base de dados isolada com atualizações em tempo real e escalabilidade automática, alojada na UE. Consulta [Bases de dados](/docs/pt/features/databases).
  </Accordion>

  <Accordion title="A base de dados tem custo adicional?">
    A base de dados está incluída em todos os planos e, enquanto te mantiveres dentro do teu limite mensal de utilização, não consome créditos. Nos planos Starter, Pro e Agências, o uso acima do limite é cobrado em créditos. No Starter, no Pro e nas Agências, cada 1 GiB adicional iniciado custa 200K créditos. No Starter, no Pro e nas Agências, cada 100 000 chamadas à API de backend adicionais custam 200K créditos. O limite é contabilizado em todo o teu espaço de trabalho e é renovado no início de cada mês do calendário. Se fizeres upgrade do plano Grátis ou do Hosting a meio do mês, o limite pago começa no momento do upgrade e o uso anterior nunca é cobrado. Encontras os detalhes em [Planos e créditos](/docs/pt/welcome/pricing#uso-da-base-de-dados).
  </Accordion>

  <Accordion title="Como visualizo e edito os meus dados?">
    O separador **Base de dados** lista as tuas tabelas e mostra as linhas de cada uma. Podes filtrá-las e ordená-las, editar valores diretamente aí, adicionar linhas ou eliminá-las. Criar tabelas e alterar os campos que têm acontece no código do teu projeto, por isso pede isso ao agente, por exemplo: "Adiciona um campo de telefone à tabela Leads."
  </Accordion>

  <Accordion title="Posso trabalhar com dados de teste em vez dos meus dados reais?">
    Sim. No separador **Base de dados**, clica em **Adicionar modo de teste** e o Macaly cria uma base de dados **Teste**, uma cópia separada dos teus dados na qual podes trabalhar sem alterar o que os teus utilizadores veem. Podes alternar entre as tuas bases de dados Em direto e Teste sempre que quiseres, e publicar a partir de qualquer uma delas. Publicar a partir da base de dados Teste começa com uma verificação de compatibilidade, para que a tua app publicada continue a funcionar com os dados que já tem.
  </Accordion>

  <Accordion title="Como transfiro uma cópia dos meus dados?">
    **Exportar** no separador **Base de dados** transfere um instantâneo em ZIP dos dados das tuas tabelas, e **Importar** restaura um. Os ficheiros que o teu projeto guarda, como imagens carregadas, não fazem parte desse ficheiro. Guarda um instantâneo antes de alterações maiores, já que eliminar 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.