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

# Atualização do Banco de Dados

> Aprenda sobre a atualização automática do seu banco de dados de desenvolvimento do Neon para o Helium e o que esperar durante o processo.

O Replit está atualizando os bancos de dados de desenvolvimento do [Neon](https://neon.tech) (um provedor terceirizado de PostgreSQL serverless) para o **Helium**, a infraestrutura de PostgreSQL gerenciada e própria do Replit. Essa atualização é automática, é executada uma vez por app e preserva todos os seus dados.

<Note>
  Essa atualização se aplica apenas aos **bancos de dados de desenvolvimento**. Bancos de dados de produção
  usados pelos seus apps publicados não são afetados na maioria dos casos. No entanto, se o seu
  app publicado compartilha um banco de dados de desenvolvimento com outro app (comum em apps mais antigos
  bifurcados ou remixados), veja [Fix a published app using a shared
  database](/pt/features/data-and-storage/shared-database-migration)
  para as etapas importantes.
</Note>

## O que está mudando

A atualização move seu banco de dados de desenvolvimento da infraestrutura do Neon para o Helium, que roda diretamente na plataforma do Replit. Veja o que isso significa para você:

* **Menor latência**: seu banco de dados roda na infraestrutura do Replit junto com seu app, reduzindo os tempos de conexão
* **Mais armazenamento**: 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 contínua**: sua variável de ambiente `DATABASE_URL` é atualizada automaticamente para apontar para o Helium
* **Conexão do Neon salva**: sua string de conexão anterior do Neon é salva como `NEON_DATABASE_URL` nos seus Secrets para referência. O banco de dados antigo do Neon não é mais usado pelo seu app após a atualização e está programado para remoção após um período de carência temporário.

Para uma comparação completa entre o banco de dados legado do Neon e o novo banco de dados do Replit — incluindo diferenças de faturamento, capacidades de restauração, segurança de conexão e comportamento de remix — veja [Legacy Development Database](/pt/features/data-and-storage/sql-database#legacy-development-database).

## O que esperar durante a atualização

A atualização é executada automaticamente quando você abre seu Replit App no Project Editor.

1. Uma tela de progresso aparece com a mensagem **"Upgrading your database"**
2. Seus dados são copiados de forma segura do Neon para o Helium. Nenhum dado é alterado ou perdido durante a transferência.
3. A duração depende do tamanho do seu banco de dados — pode levar de alguns minutos a algumas horas para bancos de dados grandes
4. Você pode manter a aba aberta ou fechá-la e voltar depois
5. Quando a atualização for concluída, uma caixa de diálogo de confirmação aparece: **"We've upgraded your database!"**

<Info>
  Se a atualização encontrar um problema, ela é automaticamente ignorada para que você possa
  continuar trabalhando. A atualização será repetida na próxima vez que você abrir seu app.
</Info>

## O que fazer depois da atualização

Para a maioria dos criadores, nenhuma ação é necessária. Seu app continua funcionando como antes.

<Tip>
  Se o seu código se conecta ao banco de dados usando a variável de ambiente `DATABASE_URL`,
  nenhuma alteração é necessária. A variável é atualizada automaticamente para
  apontar para o seu novo banco de dados Helium.
</Tip>

Revise o seguinte, caso alguma dessas situações se aplique ao seu app:

* **Strings de conexão do Neon fixas no código**: se o seu código referencia diretamente uma string de conexão `neon.tech`, atualize-a para usar a variável de ambiente `DATABASE_URL` em vez disso — `process.env.DATABASE_URL` em JavaScript ou `os.environ['DATABASE_URL']` em Python.

* **Funções (roles) personalizadas do PostgreSQL**: se você criou funções de banco de dados personalizadas no Neon, essas funções e suas permissões são migradas automaticamente. No entanto, as senhas das funções não podem ser copiadas — você precisará redefinir as senhas de qualquer função personalizada no novo banco de dados Helium.

* **Variáveis de ambiente individuais do PG**: as variáveis de ambiente `PGHOST`, `PGPORT`, `PGUSER` e `PGPASSWORD` são removidas após a atualização. Use a string de conexão `DATABASE_URL` em vez disso, que contém todas as informações necessárias para a conexão.

## Solução de problemas

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

Após a atualização, você pode ver erros de conexão como `The server does not support SSL connections` ou a desconexão inesperada do socket. Isso acontece quando o código de conexão do seu banco de dados força um handshake SSL. O Neon exigia SSL para todas as conexões, mas o Helium roda localmente junto com seu app e não usa SSL.

Para corrigir isso, torne a configuração de SSL na conexão do seu banco de dados condicional ao ambiente. Isso garante que seu app se conecte sem SSL em desenvolvimento (Helium) e com SSL em produção (onde seu banco de dados de produção ainda pode exigi-lo).

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

## App publicado usando um banco de dados compartilhado

Apps mais antigos que foram bifurcados ou remixados no Replit podem compartilhar um banco de dados de desenvolvimento com o app original. No sistema legado do Neon, bifurcar um app copiava o `DATABASE_URL` do app original, o que significava que tanto os apps quanto suas versões publicadas se conectavam ao mesmo banco de dados.

Após a atualização do banco de dados, o banco de dados Neon do app original é desativado. Se o seu app publicado ainda usa essa URL de banco de dados compartilhada, seu app publicado pode parar de funcionar ou perder acesso aos seus dados.

<Warning>
  O banco de dados compartilhado será desativado em **8 de junho de 2026**. Atualize seu app
  publicado antes dessa data para evitar a perda permanente de dados.
</Warning>

### O que fazer a seguir

Se o seu app publicado for afetado, siga o guia dedicado passo a passo:

* [Fix a published app using a shared database](/pt/features/data-and-storage/shared-database-migration)

Esse guia cobre:

* Como confirmar se o seu app publicado ainda está usando a antiga conexão do Neon
* Quando usar **Publish** ou **Republish** com **Create production database**
* Como exportar e importar dados manualmente se o seu app publicado ainda depende do antigo banco de dados compartilhado
* Precauções importantes sobre tempo de inatividade, gravações ativas e funções personalizadas do PostgreSQL

## Perguntas frequentes

<Accordion title="Meus dados estão seguros durante a atualização?">
  Sim. Seus dados são copiados do Neon para o Helium — eles não são movidos ou excluídos
  durante a transferência. O banco de dados original do Neon é preservado até que a atualização
  seja concluída com sucesso. Nenhum dado é alterado ou perdido.
</Accordion>

<Accordion title="Posso pular ou atrasar a atualização?">
  A atualização é executada automaticamente quando você abre seu Replit App. Se ela encontrar
  algum problema, é automaticamente ignorada e você pode continuar trabalhando normalmente.
  A atualização será repetida na próxima vez que você abrir o app.
</Accordion>

<Accordion title="A atualização falhou. O que devo fazer?">
  Se a atualização falhar, ela é automaticamente ignorada para que você possa continuar usando seu
  app com o banco de dados Neon existente. O sistema tentará novamente a atualização na
  próxima vez que você abrir seu app. Se o problema persistir em várias tentativas,
  [contate o suporte](https://replit.com/support) para obter assistência.
</Accordion>

<Accordion title="Por que minhas variáveis de ambiente mudaram?">
  Depois da atualização, `DATABASE_URL` aponta para o seu novo banco de dados Helium em vez
  do Neon. Sua string de conexão anterior do Neon é salva como `NEON_DATABASE_URL`
  nos Secrets do seu app. Se o seu código usa `DATABASE_URL` para conectar, nenhuma alteração
  é necessária — a variável é atualizada automaticamente.
</Accordion>

<Accordion title="O que aconteceu com PGHOST, PGPORT, PGUSER e PGPASSWORD?">
  Essas variáveis de ambiente individuais são removidas após a atualização. O Helium
  fornece os detalhes de conexão através da variável de ambiente `DATABASE_URL`, que
  contém todas as informações que seu app precisa para se conectar. Atualize
  qualquer código que referencie essas variáveis individuais para usar `DATABASE_URL`
  em vez disso.
</Accordion>

<Accordion title="Ainda posso acessar meu antigo banco de dados Neon?">
  Sua string de conexão anterior do Neon é salva como `NEON_DATABASE_URL` nos
  Secrets do seu app para referência. Na maioria dos casos, o banco de dados antigo do Neon não é mais
  usado após a atualização e está programado para remoção em **8 de junho de 2026**.

  Se o seu app publicado estava usando um banco de dados Neon compartilhado mais antigo de um app
  bifurcado ou remixado, esse banco de dados Neon pode ainda estar temporariamente disponível para que você possa
  exportar dados e migrar para o seu próprio banco de dados de produção. Esse acesso é temporário,
  e o banco de dados compartilhado ainda será removido em **8 de junho de 2026**, então atualize seu
  app publicado o mais rápido possível.

  Se `NEON_DATABASE_URL` não estiver disponível nos seus Secrets e você precisar de ajuda
  para recuperar a string de conexão antiga, [contate o
  suporte](https://replit.com/support).
</Accordion>

<Accordion title="Isso afeta meu app publicado ou de produção?">
  Na maioria dos casos, não — os bancos de dados de produção são gerenciados separadamente e não
  fazem parte dessa atualização. No entanto, se o seu app publicado usa a URL do banco de dados de
  desenvolvimento diretamente (em vez de um banco de dados de produção separado), a atualização
  pode afetar seu app publicado. Isso é mais comum em apps mais antigos que foram bifurcados
  ou remixados, onde o fork compartilhava o banco de dados do app original. Veja [Fix a
  published app using a shared
  database](/pt/features/data-and-storage/shared-database-migration) para
  saber como corrigir isso.
</Accordion>

## Próximos passos

* [Database](/pt/features/data-and-storage/sql-database): saiba mais sobre a ferramenta de Banco de Dados do Replit e como gerenciar seu banco de dados
* [Production Databases](/pt/features/data-and-storage/production-databases): entenda como os bancos de dados de produção diferem dos bancos de dados de desenvolvimento
