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

# Banco de Dados

> Aprenda como usar o banco de dados SQL integrado do Replit para armazenar e recuperar dados do seu app.

export const YouTubeEmbed = ({videoId, title = "YouTube video", startAt}) => {
  if (!videoId) {
    return null;
  }
  let url = "https://www.youtube.com/embed/" + videoId;
  if (startAt) {
    url = url + "?start=" + startAt;
  }
  return <Frame>
      <iframe src={url} title={title} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>
    </Frame>;
};

O Replit Database usa um banco de dados SQL totalmente gerenciado que permite adicionar armazenamento de dados persistente ao seu Replit App diretamente do Project Editor.

<Note>
  A maneira mais rápida de começar é pedir ao **Agent** para adicionar um banco de dados ao seu app. O Agent configurará a integração, criará o esquema do banco de dados e atualizará seu app para armazenar e recuperar dados.
</Note>

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/database-editor.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=18a9293165cc5d42db6c61ea572780d1" alt="captura de tela do editor de banco de dados" width="1389" height="871" data-path="images/databases/database-editor.jpg" />
</Frame>

## Recursos

A ferramenta Replit Database oferece os seguintes recursos:

* **Ferramentas de banco de dados**: execute consultas, gerencie o esquema do banco de dados e visualize dados com as ferramentas SQL integradas
* **Viagem no tempo**: restaure seu banco de dados para qualquer checkpoint do **Agent** usando o [recurso de rollback](/pt/features/version-control/checkpoints-and-rollbacks/)
* **Armazenamento gratuito**: inclui 20 GB de armazenamento gratuito para cada Replit App.
* **Variáveis de ambiente**: use variáveis de ambiente no seu Replit App para acessar o banco de dados com segurança

<Info>
  Antes de 4 de dezembro de 2025, o banco de dados de desenvolvimento era hospedado no Neon e tinha algumas diferenças cruciais.
  Veja a seção [Legacy Neon Development Database](#legacy-development-database) para mais detalhes.
</Info>

## Uso

<YouTubeEmbed videoId="zbyRuoPNIc8" title="How to use Databases on Replit" />

Você pode acessar a ferramenta Replit Database diretamente no Project Editor.
As seções a seguir orientam você na configuração e no gerenciamento do seu Database.

<Accordion title="Como acessar a ferramenta Replit Database">
  No **Tool dock** à esquerda:

  1. Selecione <img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/workspace-all-tools-button.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=579643854fb13c402de516695e52c554" alt="Ícone de todas as ferramentas" width="16" height="16" data-path="images/icons/workspace-all-tools-button.svg" /> **All tools** para ver uma lista das ferramentas do Project Editor.
  2. Selecione <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/postgres.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=68fc78519888560040eb7096f68e76df" alt="Ícone de banco de dados PostgreSQL" width="24" height="24" data-path="images/icons/postgres.svg" /> **Database**.

  Na **barra de pesquisa**:

  1. Selecione a <img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/workspace-search-icon.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=d3feed840da2d19e1ee4873d137114dc" alt="ícone de lupa" width="16" height="16" data-path="images/icons/workspace-search-icon.svg" /> lupa no topo para abrir a ferramenta de pesquisa
  2. Digite "Replit Database" para localizar a ferramenta e selecione-a nos resultados.
</Accordion>

### Adicionar um banco de dados

Todos os Replit Apps vêm com um banco de dados por padrão. Você pode acessá-lo selecionando a ferramenta <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/postgres.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=68fc78519888560040eb7096f68e76df" alt="Ícone de banco de dados PostgreSQL" width="24" height="24" data-path="images/icons/postgres.svg" /> **Database** no Project Editor.

Você pode integrar o banco de dados ao seu Replit App pedindo ao **Agent** para adicionar um banco de dados PostgreSQL ao seu Replit App,
incluindo detalhes sobre quais dados seu Replit App deve armazenar. O Agent criará o esquema do banco de dados
e atualizará seu app para se comunicar com o banco de dados.

### Restaurar seu banco de dados para um estado anterior

Você pode revertar seu app e banco de dados para um estado anterior usando o [recurso de rollback](/pt/features/version-control/checkpoints-and-rollbacks/).
Esse recurso permite restaurar seu banco de dados para qualquer checkpoint criado pelo **Agent**.

<Frame>
  <img src="https://mintcdn.com/replit/0UCOQvZyQpUEM03B/images/replitai/checkpoint-rollback.png?fit=max&auto=format&n=0UCOQvZyQpUEM03B&q=85&s=f9594eb28458309b2759e8698b8535ce" alt="Interface de rollback de checkpoint mostrando opções de rollback" width="3154" height="2366" data-path="images/replitai/checkpoint-rollback.png" />
</Frame>

<Info>
  Certifique-se de selecionar "Database" em "Additional rollback options" ao restaurar para o estado de um checkpoint. Isso restaurará seu banco de dados para o estado em que estava no momento do checkpoint.
</Info>

### Executar comandos de banco de dados

O SQL runner é uma ferramenta do Project Editor que permite executar comandos SQL no seu banco de dados e visualizar os resultados.

<Accordion title="Como acessar o SQL runner">
  Na ferramenta **Replit Database**:

  1. Selecione a aba **My Data**
  2. Selecione <img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/sql-runner-icon.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=fd73c517972d1a4004105e6ab49d130b" alt="Ícone do SQL runner" width="16" height="16" data-path="images/icons/sql-runner-icon.svg" /> **SQL runner**
</Accordion>

Para executar uma consulta, digite a instrução SQL na área de texto e selecione o
botão de execução <img class="icon-svg" src="https://mintcdn.com/replit/X_IP1EeHGm0cA2VA/images/icons/sql-play.svg?fit=max&auto=format&n=X_IP1EeHGm0cA2VA&q=85&s=eb0c68e0ab494444f0cbc60325bd1150" alt="ícone de executar sql" width="18" height="18" data-path="images/icons/sql-play.svg" /> adjacente,
como mostrado abaixo:

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/sql-runner-run.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=258c6ac51524a21e6a6e2070c7cefd3c" alt="captura de tela do SQL runner e do botão de execução" width="1390" height="608" data-path="images/databases/sql-runner-run.jpg" />
</Frame>

### Navegar e modificar dados visualmente

A ferramenta Replit Database inclui o <a href="https://orm.drizzle.team/drizzle-studio/overview" target="_blank">Drizzle Studio</a>,
uma ferramenta que permite navegar e modificar dados visualmente.

Essas ferramentas visuais ajudam você a evitar erros de sintaxe e oferecem as seguintes funcionalidades:

* Filtrar e ordenar dados para focar em informações específicas
* Exportar dados para um arquivo para uso externo
* Inserir ou modificar dados de linhas
* Criar e gerenciar esquemas, tabelas, views e enums

Você pode acessar essas ferramentas na aba **My Data** da ferramenta **Replit Database**.

A imagem a seguir mostra uma visualização da interface do Drizzle Studio:

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/database-editor.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=18a9293165cc5d42db6c61ea572780d1" alt="imagem do editor de estrutura de tabela" width="1389" height="871" data-path="images/databases/database-editor.jpg" />
</Frame>

<Tip>
  Você pode se conectar ao seu banco de dados usando qualquer cliente SQL compatível com PostgreSQL, usando a string de conexão
  encontrada nas suas [variáveis de ambiente](#variáveis-de-ambiente).
</Tip>

### Ver credenciais de conexão e uso

As credenciais de conexão do seu banco de dados são armazenadas como variáveis de ambiente no seu Replit App.
Essas credenciais são usadas pelo seu app para se conectar de forma segura ao banco de dados e executar comandos.

<Accordion title="Como acessar as credenciais de conexão do seu banco de dados">
  1. Navegue até a ferramenta <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/postgres.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=68fc78519888560040eb7096f68e76df" alt="Ícone de banco de dados PostgreSQL" width="24" height="24" data-path="images/icons/postgres.svg" /> **Replit Database** no Project Editor
  2. Selecione o banco de dados de Development ou Production
  3. Selecione a aba <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/settings-icon.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=27601119959a9349e102c44c2adbd398" alt="ícone de engrenagem" width="16" height="16" data-path="images/icons/settings-icon.svg" /> **Settings** (o ícone de engrenagem). Essa aba mostra as credenciais de conexão e o uso de armazenamento do seu banco de dados.
</Accordion>

#### Variáveis de ambiente

A seguinte variável de ambiente está disponível para conectar-se ao seu banco de dados de desenvolvimento:

* `DATABASE_URL`: como conectar e autenticar no banco de dados

Esse `DATABASE_URL` só pode ser usado pelo seu app, e mesmo se for exposto, não pode ser usado por mais ninguém para acessar e modificar seu banco de dados.

<Info>
  Se o seu banco de dados de desenvolvimento ainda estiver na [infraestrutura legada do Neon](#legacy-development-database), as seguintes variáveis de ambiente adicionais também estão disponíveis: `PGHOST`, `PGUSER`, `PGPASSWORD`, `PGDATABASE` e `PGPORT`. Essas variáveis de conexão individuais **não** são fornecidas para bancos de dados hospedados na infraestrutura atual do Replit — use `DATABASE_URL` em vez disso.
</Info>

<Info>
  Como esse `DATABASE_URL` é restrito ao seu app, seu banco de dados de desenvolvimento não pode ser acessado por outros apps, mesmo os que você possui, ou por visualizadores externos de banco de dados.
  Essa separação segue as melhores práticas de segurança e evita acesso não autorizado ao seu banco de dados.
</Info>

<Warning>
  Se você ainda estiver no [banco de dados de desenvolvimento legado do Neon](#legacy-development-database), não compartilhe seu `DATABASE_URL`.
  Ele contém as credenciais do seu banco de dados, que poderiam ser usadas por qualquer pessoa para acessar e modificar seu banco de dados.
  Nunca cole-o em locais públicos ou em tickets de suporte.
</Warning>

### Recursos de segurança

Quando você adiciona uma integração de banco de dados usando o **Agent**, ele adiciona um mapeador objeto-relacional (ORM)
que gerencia todas as comunicações com o banco de dados com segurança integrada.

Essa camada de ORM, combinada com a implementação de boas práticas de segurança do Agent, protege seu app contra
exploits através dos seguintes recursos:

* **Validação de esquema**: verifica se os dados estão em conformidade com os formatos esperados
* **Sanitização de dados**: limpa automaticamente a entrada do criador para evitar ataques de injeção SQL

## Legacy Development Database

Antes de 4 de dezembro de 2025, o banco de dados de desenvolvimento era hospedado no <a href="https://neon.com/" target="_blank">Neon</a>.
Esse banco de dados agora está descontinuado, e todos os novos bancos de dados de desenvolvimento são hospedados na infraestrutura de banco de dados própria do Replit.

Você pode verificar se o seu banco de dados de desenvolvimento é hospedado no Neon verificando a variável de ambiente `DATABASE_URL` [environment variable](#ver-credenciais-de-conexão-e-uso).

<Info>
  Se `DATABASE_URL` contém `neon.tech/neondb`, então o seu banco de dados de desenvolvimento ainda está hospedado no Neon.
  Caso contrário, se contém `helium/heliumdb`, seu banco de dados de desenvolvimento agora está hospedado no Replit.
</Info>

As seguintes são as principais diferenças entre o banco de dados de desenvolvimento legado do Neon e o novo banco de dados de desenvolvimento do Replit:

| **Recurso**                   | **Replit (atual)**                                                                                                                                             | **Neon (legado)**                                                                                                                                         |
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Hospedagem**                | Hospedado na infraestrutura própria do Replit                                                                                                                  | Hospedado no Neon (provedor terceirizado)                                                                                                                 |
| **Faturamento**               | Incluído gratuitamente em cada Replit App                                                                                                                      | Cobrança baseada em uso. Veja [Publishing and Database Billing](/pt/billing/about-usage-based-billing#databases) para mais detalhes.                      |
| **Capacidade de restauração** | Restaure seu banco de dados para qualquer checkpoint usando o [recurso de rollback](/pt/features/version-control/checkpoints-and-rollbacks/)                   | Restauração para um ponto no tempo (PITR) — recupere para qualquer ponto dentro da janela de retenção de backup.                                          |
| **Segurança de conexão**      | Acessível apenas a partir do seu app; nunca exposto publicamente.                                                                                              | Usava uma string de conexão completa — se exposta, qualquer pessoa poderia acessar e modificar seu banco de dados.                                        |
| **Comportamento ao remixar**  | [Remixar](/pt/build/remix-an-app) cria um novo banco de dados de desenvolvimento com dados copiados, para isolamento e segurança.                              | Remixar reutilizava o mesmo banco de dados para todas as cópias, então alterações em remixes podiam afetar o app original.                                |
| **Criação do banco de dados** | Criado automaticamente para cada Replit App.                                                                                                                   | Exigia configuração explícita.                                                                                                                            |
| **Fluxo de publicação**       | Implantar ou publicar requer a criação de um [banco de dados de produção](/pt/features/data-and-storage/production-databases) para isolamento entre ambientes. | Desenvolvimento e produção compartilhavam o mesmo banco de dados, então alterações não intencionais no desenvolvimento podiam afetar os apps em produção. |

<Warning>
  Se o seu app foi bifurcado ou remixado enquanto usava o banco de dados legado do Neon, seu app publicado ainda pode referenciar a URL do banco de dados do app original. Após a [atualização do banco de dados](/pt/features/data-and-storage/database-upgrade), essa conexão compartilhada deixará de funcionar. Veja [Fix a published app using a shared database](/pt/features/data-and-storage/shared-database-migration) para saber como atualizar seu app publicado.
</Warning>
