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

# Corrigir um app publicado que usa um banco de dados compartilhado

> Instruções passo a passo para atualizar um app publicado que ainda usa um banco de dados criado originalmente para outro app.

Alguns apps publicados mais antigos ainda podem estar conectados a um banco de dados de desenvolvimento que foi criado originalmente para um app diferente.

Isso pode acontecer com apps mais antigos que foram copiados (fork) ou remixados no Replit. Na configuração legada do Neon, uma cópia poderia continuar usando a conexão do banco de dados do app original. Como parte da mudança do Replit para isolar completamente os bancos de dados de desenvolvimento e produção, os bancos de dados de desenvolvimento compartilhados mais antigos estão sendo removidos e os apps publicados precisam migrar para seus próprios bancos de dados de produção.

Use este guia se seu app publicado está exibindo erros de conexão com o banco de dados, ou se o `DATABASE_URL` no painel de Secrets ainda aponta para `neon.tech`.

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

## Antes de começar

Seu app publicado precisa de seu próprio **banco de dados de produção**. O banco de dados de desenvolvimento exibido no painel **Database** não deve ser usado diretamente por apps publicados.

<Frame>
  <img src="https://mintcdn.com/replit/H6PTzEDJVUtYAyiB/images/databases/shared-database-migration/dev-database.png?fit=max&auto=format&n=H6PTzEDJVUtYAyiB&q=85&s=15160429e896e92a599e328a7f76d0eb" alt="Painel do banco de dados mostrando o banco de dados de desenvolvimento" width="955" height="767" data-path="images/databases/shared-database-migration/dev-database.png" />
</Frame>

Para corrigir isso, primeiro identifique em qual situação você se encontra:

* **Caso 1:** Os dados que você precisa já estão presentes no banco de dados exibido no painel **Database** do seu app.
* **Caso 2:** O painel **Database** não mostra os dados de que você precisa, porque seu app publicado ainda está usando o banco de dados de desenvolvimento compartilhado mais antigo.

## Como saber se seu app publicado está usando um banco de dados compartilhado?

Seu app publicado é afetado se qualquer uma das seguintes situações for verdadeira:

* Seu app publicado mostra erros de conexão com o banco de dados após a atualização do banco de dados
* Seu app foi remixado de outro app que tinha um banco de dados **antes de 9 de janeiro de 2026**

## Como verificar se seu app publicado está usando o banco de dados compartilhado do app de origem?

### Etapa 1: Abra o painel Database no app de origem

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/secret-pane-showing-secrets.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=4989ebfbb1cbe88ed696c9f46b306504" alt="Painel de Secrets mostrando DATABASE_URL" width="792" height="418" data-path="images/databases/shared-database-migration/secret-pane-showing-secrets.png" />
</Frame>

Obtenha o valor de `NEON_DATABASE_URL` ou de `DATABASE_URL` caso `NEON_DATABASE_URL` não exista.

<Info>
  Nem todo app afetado terá `NEON_DATABASE_URL`. Se estiver ausente, isso
  geralmente significa que você deve usar o `DATABASE_URL` atual dos Secrets do
  app publicado, se ele ainda apontar para `neon.tech`.
</Info>

### Etapa 2: Abra o painel Publish no app publicado

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/production-app-secrets.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=e640bd643913a6e91cf2c1121cb0b466" alt="Secrets do app publicado mostrando DATABASE_URL" width="1385" height="1225" data-path="images/databases/shared-database-migration/production-app-secrets.png" />
</Frame>

Para verificar a URL do banco de dados do seu app publicado:

1. Abra seu app no Replit
2. Abra o painel **Publishing**
3. Abra **Adjust Settings**
4. Abra **Secrets**
5. Procure por `DATABASE_URL`

### Etapa 3: Compare a URL do banco de dados do app de origem na Etapa 1 com o app remixado na Etapa 2

Se forem iguais, seu app publicado está usando um banco de dados de desenvolvimento Neon compartilhado do app de origem.

## Como copiar dados do app de origem para o app publicado?

Após confirmar que seu app publicado está usando o banco de dados de desenvolvimento compartilhado do app de origem, o próximo passo é transferir os dados necessários para o app publicado. Há dois cenários a considerar:

* Caso 1: O painel Database no app publicado já contém os dados necessários.
* Caso 2: O painel Database no app publicado não contém os dados necessários.

### Caso 1: O painel Database já mostra os dados de que você precisa

Este é o caminho mais simples se os dados de que você precisa já estão visíveis no painel **Database** do seu app.

#### Etapa 1: Confirme que os dados estão presentes

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/my-data.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=18be81996751767ffdf44edc2b3b5fd8" alt="Banco de dados mostrando linhas de meus dados" width="865" height="454" data-path="images/databases/shared-database-migration/my-data.png" />
</Frame>

Abra o painel **Database** no app publicado e certifique-se de que as tabelas e os dados de que você precisa estão lá.

Se você não encontrar os dados necessários no painel Database, pause aqui. Você deve seguir as etapas do [Caso 2](#caso-2-o-painel-database-não-mostra-os-dados-de-que-você-precisa) para migrar seus dados corretamente.

#### Etapa 2: Publique ou republique com um banco de dados de produção

1. Abra seu app no Editor de Projeto
2. Selecione **Publish** ou **Republish**
3. Ative **Create production database**
4. Ative **Set up your production database with your current development data**
5. Conclua o fluxo de publicação

A publicação cria uma nova versão do seu app publicado e define automaticamente seu `DATABASE_URL` para o novo banco de dados de produção. Você não precisa atualizar esse secret manualmente durante esse fluxo.

<Frame>
  <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 opções de criação de banco de dados de produção" width="1406" height="1207" data-path="images/databases/shared-database-migration/production-database-settings.png" />
</Frame>

<Warning>
  Copiar para produção substitui todos os dados de produção existentes. Consulte [Bancos de Dados de
  Produção](/references/data-and-storage/production-databases) para
  obter mais detalhes sobre como restaurar ou gerenciar seu banco de dados de produção.
</Warning>

#### Etapa 3: Verifique o app publicado

Abra seu app publicado e confirme que seus dados estão acessíveis e que o app funciona corretamente.

### Caso 2: O painel Database no app publicado não mostra os dados de que você precisa

Siga estas etapas para exportar os dados se você não encontrar os dados necessários no painel **Database** do seu app publicado.

Se seu app publicado ainda estiver conectado a um banco de dados de outro app, você verá um aviso de "banco de dados externo detectado" no painel Database.

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/external-database-detected.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=e2599ba01a24923656e49ae221966485" alt="Painel do banco de dados mostrando banco de dados externo detectado" width="1403" height="1208" data-path="images/databases/shared-database-migration/external-database-detected.png" />
</Frame>

<Warning>
  Se pessoas ainda estão usando seu app e salvando novos dados, planeje uma breve
  janela de manutenção antes de exportar os dados.
</Warning>

#### Etapa 1: Exporte os dados do banco de dados antigo

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/pg-dump-example.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=aa1e5bf72df4cbb5c8162ed6cf85f594" alt="Exemplo de pg_dump" width="1252" height="450" data-path="images/databases/shared-database-migration/pg-dump-example.png" />
</Frame>

Abra o **Shell** no Editor de Projeto e execute:

```bash theme={null}
pg_dump -Fc "database_url" --no-owner --no-privileges -f backup.dump
```

`database_url` é a URL do banco de dados obtida na [Etapa 1: Abra o painel Database no app de origem](#etapa-1-abra-o-painel-database-no-app-de-origem).

### Etapa 2: Remova o `DATABASE_URL` antigo dos Secrets do seu app

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/secret-pane.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=255b88017d8b880a4e383c7c33a0b300" alt="Exemplo do painel de secrets" width="1410" height="1184" data-path="images/databases/shared-database-migration/secret-pane.png" />
</Frame>

1. Abra a ferramenta **Secrets** no Editor de Projeto
2. Encontre o `DATABASE_URL` antigo
3. Exclua-o
4. Atualize a página ou reabra o painel **Database**

Após isso, seu app deve parar de apontar para o banco de dados compartilhado antigo e usar novamente seu banco de dados de desenvolvimento atual.

### Etapa 3: Importe os dados para o banco de dados de desenvolvimento atual do seu app

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/pg-restore-example.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=a0c3faacffc9dabb3c5b1c5443467e76" alt="Exemplo de pg_restore" width="802" height="426" data-path="images/databases/shared-database-migration/pg-restore-example.png" />
</Frame>

Depois que o secret `DATABASE_URL` antigo for removido, o banco de dados de desenvolvimento atual do seu app deve estar disponível novamente como `$DATABASE_URL` no Editor de Projeto.

Volte ao **Shell** no Editor de Projeto e execute:

```bash theme={null}
pg_restore --clean --if-exists --single-transaction --no-owner --no-privileges --exit-on-error -d "$DATABASE_URL" backup.dump
```

Isso carrega os dados exportados no banco de dados de desenvolvimento atual do seu app.

### Etapa 5: Siga o Caso 1 para publicar ou republicar com um banco de dados de produção

Quando o painel **Database** mostrar os dados corretos, siga o [Caso 1](#caso-1-o-painel-database-já-mostra-os-dados-de-que-você-precisa) para publicar ou republicar com **Create production database** e copiar esses dados para produção.

### Etapa 6: Verifique o app publicado

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/successful-export.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=f1f982d43072c613f04661a9879da43f" alt="Exportação bem-sucedida" width="965" height="554" data-path="images/databases/shared-database-migration/successful-export.png" />
</Frame>

Abra seu app publicado e confirme que seus dados estão acessíveis e que o app funciona corretamente.

## Solução de Problemas

### A importação falha porque as tabelas já existem

O comando `pg_restore --clean --if-exists` acima descarta e recria os objetos correspondentes do dump antes de restaurá-los.

### A importação falha com erros de função ou política

Se o seu banco de dados usa funções PostgreSQL personalizadas ou políticas baseadas em funções, a importação pode falhar porque essas funções não existem ainda no novo banco de dados.

A migração automática Helium do Replit tenta recriar stubs de funções antes de restaurar, mas o processo manual acima não faz isso. Se você encontrar erros relacionados a funções durante o `pg_restore`, [entre em contato com o suporte](https://replit.com/support) para obter ajuda.

### Já corrigi o app

Se seu app publicado já tem seu próprio banco de dados de produção e está funcionando corretamente, você não precisa fazer mais nada.

## Precisa de mais ajuda?

Se você não tem certeza qual caso se aplica ao seu app, ou se encontrar problemas durante a migração, [entre em contato com o suporte](https://replit.com/support).

## Documentação relacionada

* [Atualização do banco de dados](/references/data-and-storage/database-upgrade)
* [Bancos de dados de produção](/references/data-and-storage/production-databases)
* [Banco de dados](/references/data-and-storage/sql-database)
