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

# Bancos de dados de desenvolvimento e produção

> Entenda os dois bancos de dados do seu app: o banco de dados de desenvolvimento com o qual você constrói e o banco de dados de produção que alimenta seu app publicado.

Todo Replit App trabalha com dois bancos de dados. O **banco de dados de desenvolvimento** é onde você e o Agent experimentam enquanto constroem. O **banco de dados de produção** armazena os dados reais que alimentam seu app publicado, mantendo seus dados do mundo real seguros enquanto você continua construindo.

<Frame>
  <img src="https://mintcdn.com/replit/tlGd6oyGOaUUeRxr/images/databases/production-databases.jpg?fit=max&auto=format&n=tlGd6oyGOaUUeRxr&q=85&s=b60de03dc3f59d971894d1795033cc6b" alt="Interface de gerenciamento de banco de dados de produção" width="1080" height="471" data-path="images/databases/production-databases.jpg" />
</Frame>

## Como eles se comparam

| Aspecto         | Banco de dados de desenvolvimento                                | Banco de dados de produção                                        |
| --------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------- |
| **Finalidade**  | Experimentação e desenvolvimento de recursos                     | Atender usuários reais e armazenar dados de negócio               |
| **Dados**       | Dados de teste, registros fictícios, conjuntos de dados pequenos | Dados reais de usuários, informações críticas para o negócio      |
| **Criação**     | Criado automaticamente com cada Replit App                       | Ao publicar seu app                                               |
| **Agent**       | O Agent pode criar e modificar tabelas                           | O Agent não pode alterá-lo                                        |
| **Alterações**  | Alterações frequentes de esquema, iteração rápida                | Alterações cuidadosas e planejadas, aplicadas quando você publica |
| **Faturamento** | Incluído gratuitamente em cada Replit App                        | Baseado em uso                                                    |

<Note>
  O Agent não é capaz de modificar o banco de dados de produção. Essa restrição existe para manter seu banco de dados de produção seguro.

  O Agent pode fazer alterações no seu banco de dados de desenvolvimento. No momento da publicação, quaisquer alterações que você tenha feito com o Agent na estrutura do seu banco de dados de desenvolvimento (adicionar e excluir colunas ou tabelas) são aplicadas ao seu banco de dados de produção.

  Você pode editar manualmente seus dados de produção em qualquer momento: abra a ferramenta **Database**, selecione o banco de dados de produção, abra **My Data** e ative **Edit**.
</Note>

## Crie um banco de dados de produção ao publicar

Seu app publicado recebe seu próprio banco de dados de produção, separado do banco de dados de desenvolvimento que você usa enquanto constrói.

* **Infraestrutura atual (Helium)**: o Replit cria o banco de dados de produção para você quando necessário durante a publicação. Não há nada para configurar.
* **Bancos de dados de desenvolvimento legados do Neon**: você cria o banco de dados de produção a partir das configurações de publicação. Abra **Production database settings** ao publicar, ative **Create production database** e, opcionalmente, ative **Set up your production database with your current development data** para copiar seus dados de desenvolvimento.

<Frame caption="Configurações de banco de dados de produção em Publishing">
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/production-database-settings.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=a5ca44635f062423aaa9c8d8b73753e3" alt="Configurações de publicação mostrando as opções de Create production database" width="1406" height="1207" data-path="images/databases/shared-database-migration/production-database-settings.png" />
</Frame>

<Warning>
  Copie dados de desenvolvimento para a produção somente se esses dados forem seguros para uso no seu app em produção. Dados de desenvolvimento podem incluir contas de teste, registros de exemplo ou conteúdo incompleto.
</Warning>

Depois que a publicação terminar, seu app publicado usa o banco de dados de produção. Seu Project Editor continua usando o banco de dados de desenvolvimento, então futuras alterações de desenvolvimento não modificam diretamente os dados em produção.

## Fazendo alterações seguras no seu banco de dados de produção

Ao publicar atualizações que incluem alterações de banco de dados, algumas alterações exigem planejamento cuidadoso para evitar inatividade ou perda de dados.

<Info>
  Você pode notar um breve tempo de inatividade no seu app publicado durante a publicação. As alterações de banco de dados às vezes exigem parar seu app temporariamente para evitar conflitos e proteger seus dados enquanto as alterações são aplicadas.
</Info>

Os seguintes tipos de alteração normalmente exigem cuidado:

* **Remover colunas do banco de dados** que o código da sua aplicação ainda referencia
* **Alterar tipos de dados de colunas** de formas que o código existente não consegue tratar
* **Adicionar campos obrigatórios** sem valores padrão a tabelas existentes
* **Renomear tabelas ou colunas** que quebram consultas existentes
* **Modificar restrições** que possam rejeitar a lógica existente da aplicação

### Teste as alterações com uma prévia de implantação

Uma prévia de implantação é uma cópia temporária e isolada do seu ambiente de produção, onde você pode testar alterações de banco de dados e atualizações de aplicação antes que elas afetem usuários reais. Use-a para:

* Verificar se seu app ainda funciona com as alterações de banco de dados aplicadas, em todos os seus principais fluxos de usuário
* Confirmar que os dados existentes foram migrados corretamente e que os novos campos contêm os valores esperados
* Observar regressões de desempenho nos tempos de resposta das consultas

## Faturamento e uso de recursos

Os bancos de dados de produção são cobrados com base no uso através do Neon, um provedor de banco de dados serverless. O banco de dados entra em estado inativo após cinco minutos de inatividade, pausando a cobrança do tempo de computação, e é reativado instantaneamente quando recebe uma consulta.

A visão inicial da ferramenta Database mostra seu **Billing Period** e **Hours of Compute Used**. Para o armazenamento por banco de dados, abra a aba **Settings** do banco de dados. Para ver o uso em cada Replit App, abra **Settings** → **Account** → **Account usage** e expanda as linhas **PostgreSQL Storage** e **PostgreSQL Compute**.

Para saber como o Replit cobra pelo uso de banco de dados, veja [Deployments and Database Billing](/pt/billing/about-usage-based-billing#databases).

## Removendo um banco de dados de produção

<Warning>
  A ação de remoção é irreversível após um período de retenção de 7 dias. Certifique-se de fazer backup de qualquer dado importante antes de continuar. Os bancos de dados têm um período de exclusão suave de 7 dias, durante o qual podem ser restaurados; entre em contato com o suporte se precisar de ajuda. Após 7 dias, o banco de dados é excluído permanentemente e não pode ser recuperado.
</Warning>

<Accordion title="Como remover um banco de dados">
  Na ferramenta **Database**:

  1. Selecione o banco de dados, depois abra a aba **Settings**
  2. Selecione **Remove database** e confirme selecionando **Yes, Remove database**
</Accordion>

## Banco de dados de desenvolvimento legado

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>. Todos os novos bancos de dados de desenvolvimento são hospedados na infraestrutura própria do Replit (Helium). Você pode verificar qual infraestrutura seu app usa na aba **Settings**: um `DATABASE_URL` contendo `neon.tech` significa Neon legado; `helium` significa a infraestrutura atual.

| **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/data-and-storage/data-recovery)                            | 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/features/projects-and-artifacts/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.                                                                                                       |

## Atualização da infraestrutura do banco de dados

O Replit está atualizando os bancos de dados de desenvolvimento do Neon para o **Helium**, a infraestrutura de PostgreSQL própria e gerenciada do Replit. A atualização é automática, é executada uma vez por app quando você abre o app no Project Editor, e preserva todos os seus dados.

O que muda:

* **Menor latência e mais armazenamento**: seu banco de dados roda na infraestrutura do Replit junto com seu app, e seu limite de armazenamento aumenta de 10 GB para 20 GB.
* **Mesmo mecanismo de banco de dados**: o Helium usa o PostgreSQL 16, a mesma versão do Neon. Suas consultas, esquemas e dados funcionam da mesma forma.
* **Conexão atualizada automaticamente**: `DATABASE_URL` é atualizado para apontar para o Helium. Sua string de conexão anterior do Neon é salva como `NEON_DATABASE_URL` nos seus Secrets para referência.
* **Variáveis PG individuais removidas**: `PGHOST`, `PGPORT`, `PGUSER` e `PGPASSWORD` são removidas. Use `DATABASE_URL` em vez disso.

Durante a atualização, você verá uma tela de progresso **"Upgrading your database"**. Pode levar de alguns minutos a algumas horas para bancos de dados grandes; você pode fechar a aba e voltar depois. Se a atualização encontrar um problema, ela é automaticamente ignorada e repetida na próxima vez que você abrir seu app. Quando terminar, uma caixa de diálogo de confirmação aparece.

Para a maioria dos criadores, nenhuma ação é necessária depois. Revise o seguinte, caso se aplique ao seu app:

* **Strings de conexão do Neon fixas no código**: atualize o código que referencia diretamente uma string de conexão `neon.tech` para usar a variável de ambiente `DATABASE_URL` em vez disso.
* **Funções (roles) personalizadas do PostgreSQL**: as funções e permissões são migradas automaticamente, mas as senhas das funções não podem ser copiadas. Redefina as senhas de qualquer função personalizada no novo banco de dados.

### Erros de conexão SSL após a atualização

Se você ver erros como `The server does not support SSL connections`, seu código de conexão está forçando um handshake SSL. O Neon exigia SSL; o Helium roda localmente junto com seu app e não o utiliza. Torne a configuração de SSL condicional ao ambiente:

<CodeGroup>
  ```js JavaScript theme={null}
  // Before (breaks after upgrade)
  const pool = new Pool({
    connectionString: process.env.DATABASE_URL,
    ssl: { rejectUnauthorized: false },
  });

  // After (works in both development and production)
  const pool = new Pool({
    connectionString: process.env.DATABASE_URL,
    ssl:
      process.env.NODE_ENV === "production"
        ? { rejectUnauthorized: false }
        : false,
  });
  ```
</CodeGroup>

<Tip>
  Se você usa um ORM como Drizzle, Prisma ou Sequelize, consulte a documentação dele sobre como configurar as opções de SSL de forma condicional. O mesmo princípio se aplica: desative o SSL para o banco de dados de desenvolvimento e ative-o para produção.
</Tip>

### Apps bifurcados que compartilhavam um banco de dados

No sistema legado do Neon, bifurcar um app copiava o `DATABASE_URL` do app original, então tanto os apps quanto suas versões publicadas se conectavam ao mesmo banco de dados. Os bancos de dados compartilhados legados foram desativados em **8 de junho de 2026**. Se o seu app publicado parou de funcionar ou perdeu acesso aos seus dados, veja [Fix a published app using a shared database](/pt/features/data-and-storage/shared-database-migration) ou [contate o suporte](https://replit.com/support).

## Próximos passos

* [Recuperação de dados](/pt/features/data-and-storage/data-recovery): Restaure dados de desenvolvimento ou produção.
* [Detalhes de conexão](/pt/features/data-and-storage/connection-details): Encontre a string de conexão do seu banco de dados.
* [Trabalhe com seus dados](/pt/features/data-and-storage/work-with-your-data): Navegue, edite e consulte seus dados.
