Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.
No painel Banco de dados, verifique se o problema afeta o desenvolvimento ou a
produção. Compare isso com o ambiente que executa a requisição com falha.
Veja Bancos de dados de desenvolvimento e produção.Verifique o Status do Replit para ver se há um incidente correspondente.
Não conclua que há uma indisponibilidade apenas por causa de um erro de conexão.
Verifique se há algum problema de cobrança pendente ou restrição de uso.
Abra o painel Banco de dados e selecione o ambiente afetado.
Se Reativar banco de dados estiver disponível, selecione-o e tente a conexão novamente.
Se o controle não aparecer, verifique se um DATABASE_URL configurado manualmente
aponta para um banco de dados diferente do exibido no painel.
Compare as configurações de conexão de forma privada. Não imprima nem compartilhe a string de
conexão completa. Não remova uma configuração intencional de banco de dados externo.Se a reativação falhar ou o controle continuar ausente, entre em contato com o Suporte informando o
ambiente, o erro e as etapas tentadas. Reinicializações repetidas não substituem
a investigação de um banco de dados pausado.
Verifique os secrets de produção e a configuração de banco de dados do aplicativo publicado,
especialmente após uma restauração ou migração. Os secrets do workspace, por si sós, não verificam
a conexão de produção.Em Publicação, revise Ajustar configurações e os secrets de produção.
Se seu aplicativo usa tanto DATABASE_URL quanto variáveis individuais do PostgreSQL,
garanta que ambos se refiram ao mesmo banco de dados pretendido. Salve e publique a
configuração pretendida e verifique uma leitura antes de testar gravações.Nunca copie credenciais de produção para o código do frontend nem para um repositório público.
Primeiro verifique qual banco de dados o aplicativo está lendo. Um banco de dados de desenvolvimento
vazio ou um destino de conexão diferente pode parecer perda de dados.Verifique se uma migração recente alterou nomes de tabelas ou o esquema. Publicar o código do
aplicativo não significa que os registros de desenvolvimento foram copiados para a produção.
Não execute uma redefinição, não remova tabelas nem copie dados de desenvolvimento sobre a produção como
etapa de diagnóstico.
O Replit usa o drizzle-kit, a ferramenta de migração do Drizzle ORM, para gerenciar seus
bancos de dados em dois momentos:
Em desenvolvimento, o Agent atualiza o arquivo de esquema do Drizzle e executa o
drizzle-kit para aplicá-lo ao seu banco de dados de desenvolvimento.
Ao publicar, o Replit compara seu banco de dados de desenvolvimento com seu banco de dados
de produção e gera o SQL necessário para atualizar a produção. Ele compara os próprios
bancos de dados, não o seu arquivo de esquema.
O drizzle-kit só funciona com o que um esquema do Drizzle consegue descrever: tabelas,
colunas, índices, restrições, enums, sequências, views e políticas de segurança em nível de
linha.
Esses objetos não fazem parte de um esquema do Drizzle, portanto o drizzle-kit não consegue
compará-los nem criá-los em desenvolvimento, e a publicação não os copia para a produção:
Domínios, tipos personalizados criados com CREATE DOMAIN.
Funções, procedimentos e gatilhos (triggers).
Permissões (grants), permissões de tabela concedidas com GRANT.
Você pode criar qualquer um dos objetos não compatíveis acima manualmente pelo console SQL, ou o Agent também pode executar SQL diretamente no seu banco de dados de desenvolvimento. Eles funcionarão em desenvolvimento e no Preview, mas nenhum objeto não compatível será copiado para a produção na publicação.
Se uma tabela, view, valor padrão ou política depender de um desses objetos,
a publicação é interrompida na migração do banco de dados com um erro como:
function my_function(text) does not exist
type "my_domain" does not exist
role "app_user" does not exist
O Replit reverte a migração com falha, portanto seu banco de dados de produção não é
alterado.Gatilhos e permissões geralmente não causam erro. A publicação é concluída, mas seu
aplicativo publicado pode se comportar de forma diferente do Preview. Por exemplo, um gatilho que
atualiza um carimbo de data/hora não é executado na produção.Para corrigir qualquer um dos casos, encontre o que está faltando
e aplique na produção; depois, publique novamente.
O Agent pode executar essa comparação para você, pois tem acesso somente leitura ao
seu banco de dados de produção. Veja o prompt em
Aplique objetos ausentes na produção.
Para verificar por conta própria, execute as mesmas consultas somente leitura nos dois bancos de dados
a partir do console SQL e compare os resultados:
-- Functions you created (excludes functions installed by extensions)SELECT p.proname FROM pg_proc pWHERE p.pronamespace = 'public'::regnamespace AND NOT EXISTS ( SELECT 1 FROM pg_depend d WHERE d.objid = p.oid AND d.deptype = 'e' )ORDER BY 1;-- TriggersSELECT DISTINCT event_object_table, trigger_nameFROM information_schema.triggersORDER BY 1, 2;-- DomainsSELECT typname FROM pg_typeWHERE typtype = 'd' AND typnamespace = 'public'::regnamespaceORDER BY 1;-- RolesSELECT rolname FROM pg_rolesWHERE rolname NOT LIKE 'pg\_%'ORDER BY 1;-- Grants to roles other than the one you're connected asSELECT table_name, grantee, privilege_typeFROM information_schema.role_table_grantsWHERE table_schema = 'public' AND grantee <> current_userORDER BY 1, 2, 3;
Tudo que aparecer apenas em desenvolvimento precisa ser aplicado na produção.
Algumas roles são criadas pelo Replit e diferem entre os dois bancos de dados; você
só precisa das roles usadas pelas políticas ou permissões do seu aplicativo.
Avançado: estas etapas executam SQL diretamente no seu banco de dados de produção ativo
para adicionar objetos que a publicação não transfere, como funções, gatilhos e
roles. Executar SQL manualmente é um fluxo não compatível, com o qual só podemos ajudar de
forma limitada, portanto recomendamos isso apenas se você se sentir confortável trabalhando com
SQL.Revise primeiro suas opções em
Recuperação de dados e aplique as
alterações quando seu aplicativo tiver pouco tráfego.
Peça ao Agent para comparar seus bancos de dados e escrever um script para tudo o que
estiver faltando. Cole este prompt no Agent em seu projeto:O Agent pode ler seu banco de dados de produção, mas não pode alterá-lo, então você
executa o script por conta própria nas próximas etapas.
Na ferramenta Banco de dados, selecione o banco de dados de produção, abra Meus dados
e ative Enable Editing.
A publicação não remove esses objetos, então eles permanecem para as próximas
publicações. Mantenha o script no seu projeto e execute-o novamente sempre que adicionar ou
alterar um desses objetos em desenvolvimento.
Interrompa gravações evitáveis nos dados afetados enquanto avalia a recuperação. Uma restauração
pode substituir dados mais recentes. Preserve o estado atual e entenda o escopo
antes de confirmar uma ação de recuperação.
Registre o ambiente afetado, o horário aproximado da última versão boa conhecida com o fuso horário
e o que mudou. Verifique as opções de recuperação e o histórico disponível exibidos para
esse banco de dados. A retenção e os métodos de recuperação dependem do banco de dados e da
configuração; não presuma que um carimbo de data/hora mais antigo seja recuperável.Use as instruções específicas do banco de dados em
Recuperação de dados.
Não presuma que reverter o código do aplicativo também restaura os dados de produção.Entre em contato com o Suporte se não conseguir identificar um caminho seguro de recuperação. A recuperação não é
garantida, e aumentar a retenção não pode recriar um histórico que não foi mantido.
Remova os valores expostos de materiais compartilhados. Para um banco de dados de produção compatível,
regenere as credenciais dele
na ferramenta Database. Revise antes os requisitos de elegibilidade e o aviso de interrupção.
Atualize os clientes externos com a nova string de conexão. Se a ação não estiver
disponível, entre em contato com o Suporte. Não exclua o banco de dados para rotacionar credenciais.
Inclua a URL do projeto, o ambiente, o erro sem dados sensíveis, a data/hora e o fuso horário,
migrações ou restaurações recentes e as verificações já concluídas. Não inclua
credenciais do banco de dados, strings de conexão completas nem registros de clientes.
Veja a lista de verificação para o suporte.
Esta página foi útil?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Replit","colors":{"primary":"#FF3C00","light":"#FF3C00","dark":"#FF3C00"},"logo":{"light":"https://mintcdn.com/replit/j4of5To8jzehz0JK/logo/light.svg?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=6209cb5927b56fd1781133af05428373","dark":"https://mintcdn.com/replit/j4of5To8jzehz0JK/logo/dark.svg?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=9cbba158300d48c49d8b888e71015495","href":"/welcome"},"favicon":"https://mintcdn.com/replit/CmOMKRnamiqG44eH/favicon.ico?fit=max\u0026auto=format\u0026n=CmOMKRnamiqG44eH\u0026q=85\u0026s=c89a6df6f537373c946c7a5f0ac65475","appearance":{"default":"light"},"background":{"color":{"light":"#F6F5F4","dark":"#1E1E1F"}},"navbar":{"links":[],"primary":{"type":"button","label":"Start Building","href":"https://replit.com?ref=docs"}},"footer":{"socials":{"x":"https://x.com/replit","linkedin":"https://www.linkedin.com/company/repl-it","youtube":"https://www.youtube.com/@replit"}},"seo":{"metatags":{"og:site_name":"Replit Docs","twitter:site":"@replit","twitter:creator":"@replit","author":"Replit"},"indexing":"all"},"fonts":{"heading":{"family":"ABC Diatype Plus","weight":400,"source":"https://cdn.replit.com/dotcom/fonts/ABCDiatypePlusVariable.woff2","format":"woff2"},"body":{"family":"ABC Diatype Plus","weight":400,"source":"https://cdn.replit.com/dotcom/fonts/ABCDiatypePlusVariable.woff2","format":"woff2"}},"integrations":{"segment":{"key":"dMePKGC4BqfBivpe0Hvl8IoPpzSHgjdX"}},"contextual":{"options":["copy","view"],"display":"header"},"thumbnails":{"appearance":"light","background":"https://mintcdn.com/replit/j4of5To8jzehz0JK/thumb.png?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=a7db7f0256b2fa06810fb4d378e63cc5","fonts":{"family":"ABC Diatype Plus"}},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"welcome"},{"language":"fr","navbar":{"links":[],"primary":{"type":"button","label":"Commencer à créer","href":"https://replit.com?ref=docs"}},"href":"fr/welcome"},{"language":"pt","hidden":false,"navbar":{"links":[],"primary":{"type":"button","label":"Comece a criar","href":"https://replit.com?ref=docs"}},"href":"pt/welcome"},{"language":"ja","hidden":false,"navbar":{"links":[],"primary":{"type":"button","label":"作成を開始","href":"https://replit.com?ref=docs"}},"href":"ja/welcome"},{"language":"ko","hidden":false,"navbar":{"links":[],"primary":{"type":"button","label":"빌드 시작하기","href":"https://replit.com?ref=docs"}},"href":"ko/welcome"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"replit","hasAudioNarration":false,"actualSubdomain":"replit","customDomains":["docs.replit.com","docs.repl.it"],"gitSource":{"type":"github","owner":"replit","repo":"replit-docs","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"issues":true,"edits":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af1e6e40da5396f9633a9b1","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"en","tag":"Features","count":360},{"language":"fr","tag":"Fonctionnalités","count":360},{"language":"ja","tag":"機能","count":360},{"language":"ko","tag":"기능","count":360},{"language":"pt","tag":"Funcionalidades","count":360},{"language":"en","tag":"Changelog","count":100},{"language":"fr","tag":"Journal des modifications","count":100},{"language":"ja","tag":"変更履歴","count":100},{"language":"ko","tag":"변경 내역","count":100},{"language":"pt","tag":"Registro de alterações","count":100},{"language":"en","tag":"Apps","count":41},{"language":"fr","tag":"Apps","count":41},{"language":"ja","tag":"Apps","count":41},{"language":"ko","tag":"Apps","count":41},{"language":"pt","tag":"Apps","count":41},{"language":"en","tag":"Enterprise","count":40},{"language":"fr","tag":"Entreprise","count":40},{"language":"ja","tag":"Enterprise","count":40},{"language":"ko","tag":"Enterprise","count":40},{"language":"pt","tag":"Enterprise","count":40},{"language":"en","tag":"Use cases","count":39},{"language":"fr","tag":"Use cases","count":39},{"language":"ja","tag":"Use cases","count":39},{"language":"ko","tag":"Use cases","count":39},{"language":"pt","tag":"Use cases","count":39},{"language":"en","tag":"Chats","count":25},{"language":"en","tag":"Designs","count":25},{"language":"fr","tag":"Chats","count":25},{"language":"fr","tag":"Designs","count":25},{"language":"ja","tag":"Chats","count":25},{"language":"ja","tag":"Designs","count":25},{"language":"ko","tag":"Chats","count":25},{"language":"ko","tag":"Designs","count":25},{"language":"pt","tag":"Chats","count":25},{"language":"pt","tag":"Designs","count":25},{"language":"en","tag":"Trust \u0026 Billing","count":23},{"language":"fr","tag":"Confiance et facturation","count":23},{"language":"ja","tag":"信頼と請求","count":23},{"language":"ko","tag":"신뢰 및 결제","count":23},{"language":"pt","tag":"Confiança e faturamento","count":23},{"language":"en","tag":"Web","count":22},{"language":"fr","tag":"Web","count":22},{"language":"ja","tag":"Web","count":22},{"language":"ko","tag":"Web","count":22},{"language":"pt","tag":"Web","count":22},{"language":"en","tag":"Help","count":20},{"language":"fr","tag":"Help","count":20},{"language":"ja","tag":"Help","count":20},{"language":"ko","tag":"Help","count":20},{"language":"pt","tag":"Help","count":20}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@replit.com"}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","href":"/_mintlify/custom/replit/795eee5cda55dee3/styles.css"}],"page":{"pagePath":"pt/help/troubleshooting/databases","slug":"/pt/help/troubleshooting/databases","pageMetadata":{"title":"Solucionar problemas de bancos de dados","sidebarTitle":"Bancos de dados","description":"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.","href":"/pt/help/troubleshooting/databases"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const AiPrompt=({children})=>{const{CodeBlock}=_provideComponents()||{};if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);return _jsx(CodeBlock,{className:`mint-relative mint-block mint-max-w-full mint-overflow-x-hidden mint-font-sans !mint-whitespace-pre-wrap !mint-break-words`,style:{overflowWrap:`anywhere`,wordBreak:`break-word`},children:_jsx(`div`,{className:`mint-pr-7`,style:{whiteSpace:`pre-wrap`,overflowWrap:`anywhere`,wordBreak:`break-word`},children})})};function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning,_MdxComponentBoundary}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`identifique-o-banco-de-dados-afetado`,children:`Identifique o banco de dados afetado`}),`\n`,_jsxs(_components.p,{children:[`No painel `,_jsx(_components.strong,{children:`Banco de dados`}),`, verifique se o problema afeta o desenvolvimento ou a\nprodução. Compare isso com o ambiente que executa a requisição com falha.\nVeja `,_jsx(_components.a,{href:`/pt/features/data-and-storage/development-and-production`,children:`Bancos de dados de desenvolvimento e produção`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Verifique o `,_jsx(_components.a,{href:`https://status.replit.com`,children:`Status do Replit`}),` para ver se há um incidente correspondente.\nNão conclua que há uma indisponibilidade apenas por causa de um erro de conexão.`]}),`\n`,_jsx(Heading,{level:`2`,id:`“the-endpoint-has-been-disabled”`,children:`“The endpoint has been disabled”`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Verifique se há algum problema de cobrança pendente ou restrição de uso.`}),`\n`,_jsxs(_components.li,{children:[`Abra o painel `,_jsx(_components.strong,{children:`Banco de dados`}),` e selecione o ambiente afetado.`]}),`\n`,_jsxs(_components.li,{children:[`Se `,_jsx(_components.strong,{children:`Reativar banco de dados`}),` estiver disponível, selecione-o e tente a conexão novamente.`]}),`\n`,_jsxs(_components.li,{children:[`Se o controle não aparecer, verifique se um `,_jsx(_components.code,{children:`DATABASE_URL`}),` configurado manualmente\naponta para um banco de dados diferente do exibido no painel.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Compare as configurações de conexão de forma privada. Não imprima nem compartilhe a string de\nconexão completa. Não remova uma configuração intencional de banco de dados externo.`}),`\n`,_jsx(_components.p,{children:`Se a reativação falhar ou o controle continuar ausente, entre em contato com o Suporte informando o\nambiente, o erro e as etapas tentadas. Reinicializações repetidas não substituem\na investigação de um banco de dados pausado.`}),`\n`,_jsx(Heading,{level:`2`,id:`o-preview-conecta-mas-o-aplicativo-publicado-não`,children:`O Preview conecta, mas o aplicativo publicado não`}),`\n`,_jsx(_components.p,{children:`Verifique os secrets de produção e a configuração de banco de dados do aplicativo publicado,\nespecialmente após uma restauração ou migração. Os secrets do workspace, por si sós, não verificam\na conexão de produção.`}),`\n`,_jsxs(_components.p,{children:[`Em `,_jsx(_components.strong,{children:`Publicação`}),`, revise `,_jsx(_components.strong,{children:`Ajustar configurações`}),` e os secrets de produção.\nSe seu aplicativo usa tanto `,_jsx(_components.code,{children:`DATABASE_URL`}),` quanto variáveis individuais do PostgreSQL,\ngaranta que ambos se refiram ao mesmo banco de dados pretendido. Salve e publique a\nconfiguração pretendida e verifique uma leitura antes de testar gravações.`]}),`\n`,_jsx(_components.p,{children:`Nunca copie credenciais de produção para o código do frontend nem para um repositório público.`}),`\n`,_jsx(Heading,{level:`2`,id:`tabelas-ou-registros-ausentes`,children:`Tabelas ou registros ausentes`}),`\n`,_jsx(_components.p,{children:`Primeiro verifique qual banco de dados o aplicativo está lendo. Um banco de dados de desenvolvimento\nvazio ou um destino de conexão diferente pode parecer perda de dados.`}),`\n`,_jsx(_components.p,{children:`Verifique se uma migração recente alterou nomes de tabelas ou o esquema. Publicar o código do\naplicativo não significa que os registros de desenvolvimento foram copiados para a produção.\nNão execute uma redefinição, não remova tabelas nem copie dados de desenvolvimento sobre a produção como\netapa de diagnóstico.`}),`\n`,_jsx(Heading,{level:`2`,id:`objetos-de-banco-de-dados-não-compatíveis`,children:`Objetos de banco de dados não compatíveis`}),`\n`,_jsx(_components.p,{children:`O Replit usa o drizzle-kit, a ferramenta de migração do Drizzle ORM, para gerenciar seus\nbancos de dados em dois momentos:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Em desenvolvimento`}),`, o Agent atualiza o arquivo de esquema do Drizzle e executa o\ndrizzle-kit para aplicá-lo ao seu banco de dados de desenvolvimento.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ao publicar`}),`, o Replit compara seu banco de dados de desenvolvimento com seu banco de dados\nde produção e gera o SQL necessário para atualizar a produção. Ele compara os próprios\nbancos de dados, não o seu arquivo de esquema.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`O drizzle-kit só funciona com o que um esquema do Drizzle consegue descrever: tabelas,\ncolunas, índices, restrições, enums, sequências, views e políticas de segurança em nível de\nlinha.`}),`\n`,_jsx(Heading,{level:`3`,id:`não-compatíveis`,children:`Não compatíveis`}),`\n`,_jsx(_components.p,{children:`Esses objetos não fazem parte de um esquema do Drizzle, portanto o drizzle-kit não consegue\ncompará-los nem criá-los em desenvolvimento, e a publicação não os copia para a produção:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Domínios`}),`, tipos personalizados criados com `,_jsx(_components.code,{children:`CREATE DOMAIN`}),`.`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Funções, procedimentos e gatilhos (triggers).`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Permissões (grants)`}),`, permissões de tabela concedidas com `,_jsx(_components.code,{children:`GRANT`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`suporte-limitado-roles`,children:`Suporte limitado: roles`}),`\n`,_jsx(_components.p,{children:`O Drizzle pode declarar roles, mas o suporte a elas é limitado. Por isso, atualmente a publicação não\ncria, altera nem remove roles.`}),`\n`,_jsx(Heading,{level:`3`,id:`objetos-criados-com-sql`,children:`Objetos criados com SQL`}),`\n`,_jsxs(_components.p,{children:[`Você pode criar qualquer um dos objetos não compatíveis acima manualmente pelo `,_jsx(_components.a,{href:`/pt/features/data-and-storage/work-with-your-data#executar-comandos-sql`,children:`console SQL`}),`, ou o Agent também pode executar SQL diretamente no seu banco de dados de desenvolvimento. Eles funcionarão em desenvolvimento e no Preview, mas nenhum objeto não compatível será copiado para a produção na publicação.`]}),`\n`,_jsx(Heading,{level:`3`,id:`o-que-acontece-quando-um-objeto-não-é-compatível`,children:`O que acontece quando um objeto não é compatível`}),`\n`,_jsx(_components.p,{children:`Se uma tabela, view, valor padrão ou política depender de um desses objetos,\na publicação é interrompida na migração do banco de dados com um erro como:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`function my_function(text) does not exist`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`type \"my_domain\" does not exist`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`role \"app_user\" does not exist`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`O Replit reverte a migração com falha, portanto seu banco de dados de produção não é\nalterado.`}),`\n`,_jsx(_components.p,{children:`Gatilhos e permissões geralmente não causam erro. A publicação é concluída, mas seu\naplicativo publicado pode se comportar de forma diferente do Preview. Por exemplo, um gatilho que\natualiza um carimbo de data/hora não é executado na produção.`}),`\n`,_jsxs(_components.p,{children:[`Para corrigir qualquer um dos casos, `,_jsx(_components.a,{href:`#encontre-o-que-est%C3%A1-faltando-na-produ%C3%A7%C3%A3o`,children:`encontre o que está faltando`}),`\ne `,_jsx(_components.a,{href:`#aplique-objetos-ausentes-na-produ%C3%A7%C3%A3o`,children:`aplique na produção`}),`; depois, publique novamente.`]}),`\n`,_jsx(Heading,{level:`2`,id:`encontre-o-que-está-faltando-na-produção`,children:`Encontre o que está faltando na produção`}),`\n`,_jsxs(_components.p,{children:[`O Agent pode executar essa comparação para você, pois tem acesso somente leitura ao\nseu banco de dados de produção. Veja o prompt em\n`,_jsx(_components.a,{href:`#aplique-objetos-ausentes-na-produ%C3%A7%C3%A3o`,children:`Aplique objetos ausentes na produção`}),`.\nPara verificar por conta própria, execute as mesmas consultas somente leitura nos dois bancos de dados\na partir do `,_jsx(_components.strong,{children:`console SQL`}),` e compare os resultados:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`28`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`28`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- Functions you created (excludes functions installed by extensions)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`proname`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` FROM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pg_proc p`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`pronamespace`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'public'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`::regnamespace`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` AND`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` NOT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` EXISTS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` SELECT`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` FROM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pg_depend d `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` d`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`objid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`oid`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` AND`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` d`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`deptype`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'e'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ORDER BY`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- Triggers`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT DISTINCT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` event_object_table, trigger_name`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`FROM`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` information_schema`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`triggers`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ORDER BY`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- Domains`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` typname `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`FROM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pg_type`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` typtype `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'd'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` AND`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` typnamespace `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'public'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`::regnamespace`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ORDER BY`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- Roles`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rolname `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`FROM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pg_roles`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` rolname `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`NOT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` LIKE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'pg\\\\_%'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ORDER BY`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`-- Grants to roles other than the one you're connected as`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`SELECT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` table_name, grantee, privilege_type`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`FROM`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` information_schema`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`role_table_grants`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`WHERE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` table_schema `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'public'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` AND`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` grantee `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` current_user`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`ORDER BY`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Tudo que aparecer apenas em desenvolvimento precisa ser aplicado na produção.\nAlgumas roles são criadas pelo Replit e diferem entre os dois bancos de dados; você\nsó precisa das roles usadas pelas políticas ou permissões do seu aplicativo.`}),`\n`,_jsx(Heading,{level:`2`,id:`aplique-objetos-ausentes-na-produção`,children:`Aplique objetos ausentes na produção`}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Avançado:`}),` estas etapas executam SQL diretamente no seu banco de dados de produção ativo\npara adicionar objetos que a publicação não transfere, como funções, gatilhos e\nroles. Executar SQL manualmente é um fluxo não compatível, com o qual só podemos ajudar de\nforma limitada, portanto recomendamos isso apenas se você se sentir confortável trabalhando com\nSQL.`]}),_jsxs(_components.p,{children:[`Revise primeiro suas opções em\n`,_jsx(_components.a,{href:`/pt/features/data-and-storage/data-recovery`,children:`Recuperação de dados`}),` e aplique as\nalterações quando seu aplicativo tiver pouco tráfego.`]})]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Peça ao Agent para comparar seus bancos de dados e escrever um script para tudo o que\nestiver faltando. Cole este prompt no Agent em seu projeto:`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AiPrompt`,children:_jsx(AiPrompt,{children:_jsx(_components.p,{children:`First, run a read-only query on my Replit-managed production database to\nconfirm you can reach it. If you can’t, stop and tell me why. Then compare\nmy development and production databases and find any functions,\ntriggers, domains, roles, or grants that exist only in development. Write\none SQL script that creates only the missing objects. Put roles and\ndomains first, then functions, then triggers and grants. Make every\nstatement safe to run more than once. Save the script in my project as\ndb/production-objects.sql. Don’t run it, and don’t try to change the\nproduction database.`})})}),`\n`,_jsx(_components.p,{children:`O Agent pode ler seu banco de dados de produção, mas não pode alterá-lo, então você\nexecuta o script por conta própria nas próximas etapas.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Na ferramenta `,_jsx(_components.strong,{children:`Banco de dados`}),`, selecione o banco de dados de produção, abra `,_jsx(_components.strong,{children:`Meus dados`}),`\ne ative `,_jsx(_components.strong,{children:`Enable Editing`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Abra o `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/pt/features/data-and-storage/work-with-your-data#executar-comandos-sql`,children:`console SQL`})}),` e execute o script.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Desative `,_jsx(_components.strong,{children:`Enable Editing`}),` e publique novamente.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`A publicação não remove esses objetos, então eles permanecem para as próximas\npublicações. Mantenha o script no seu projeto e execute-o novamente sempre que adicionar ou\nalterar um desses objetos em desenvolvimento.`}),`\n`,_jsx(Heading,{level:`2`,id:`dados-foram-excluídos-ou-sobrescritos`,children:`Dados foram excluídos ou sobrescritos`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Interrompa gravações evitáveis nos dados afetados enquanto avalia a recuperação. Uma restauração\npode substituir dados mais recentes. Preserve o estado atual e entenda o escopo\nantes de confirmar uma ação de recuperação.`})}),`\n`,_jsx(_components.p,{children:`Registre o ambiente afetado, o horário aproximado da última versão boa conhecida com o fuso horário\ne o que mudou. Verifique as opções de recuperação e o histórico disponível exibidos para\nesse banco de dados. A retenção e os métodos de recuperação dependem do banco de dados e da\nconfiguração; não presuma que um carimbo de data/hora mais antigo seja recuperável.`}),`\n`,_jsxs(_components.p,{children:[`Use as instruções específicas do banco de dados em\n`,_jsx(_components.a,{href:`/pt/features/data-and-storage/data-recovery`,children:`Recuperação de dados`}),`.\nNão presuma que reverter o código do aplicativo também restaura os dados de produção.`]}),`\n`,_jsx(_components.p,{children:`Entre em contato com o Suporte se não conseguir identificar um caminho seguro de recuperação. A recuperação não é\ngarantida, e aumentar a retenção não pode recriar um histórico que não foi mantido.`}),`\n`,_jsx(Heading,{level:`2`,id:`as-credenciais-podem-ter-sido-expostas`,children:`As credenciais podem ter sido expostas`}),`\n`,_jsxs(_components.p,{children:[`Remova os valores expostos de materiais compartilhados. Para um banco de dados de produção compatível,\n`,_jsx(_components.a,{href:`/pt/features/data-and-storage/connection-details#regenerar-as-credenciais-do-banco-de-dados-de-produ%C3%A7%C3%A3o`,children:`regenere as credenciais dele`}),`\nna ferramenta `,_jsx(_components.strong,{children:`Database`}),`. Revise antes os requisitos de elegibilidade e o aviso de interrupção.\nAtualize os clientes externos com a nova string de conexão. Se a ação não estiver\ndisponível, entre em contato com o Suporte. Não exclua o banco de dados para rotacionar credenciais.`]}),`\n`,_jsx(Heading,{level:`2`,id:`detalhes-para-o-suporte`,children:`Detalhes para o Suporte`}),`\n`,_jsxs(_components.p,{children:[`Inclua a URL do projeto, o ambiente, o erro sem dados sensíveis, a data/hora e o fuso horário,\nmigrações ou restaurações recentes e as verificações já concluídas. Não inclua\ncredenciais do banco de dados, strings de conexão completas nem registros de clientes.\nVeja a `,_jsx(_components.a,{href:`/pt/help/troubleshooting/overview#quando-entrar-em-contato-com-o-suporte`,children:`lista de verificação para o suporte`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{AiPrompt,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Solucionar problemas de bancos de dados","sidebarTitle":"Bancos de dados","description":"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.","href":"/pt/help/troubleshooting/databases"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[144,612,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"Identifique o banco de dados afetado","slug":"identifique-o-banco-de-dados-afetado","depth":2,"children":[]},{"title":"“The endpoint has been disabled”","slug":"“the-endpoint-has-been-disabled”","depth":2,"children":[]},{"title":"O Preview conecta, mas o aplicativo publicado não","slug":"o-preview-conecta-mas-o-aplicativo-publicado-não","depth":2,"children":[]},{"title":"Tabelas ou registros ausentes","slug":"tabelas-ou-registros-ausentes","depth":2,"children":[]},{"title":"Objetos de banco de dados não compatíveis","slug":"objetos-de-banco-de-dados-não-compatíveis","depth":2,"children":[{"title":"Não compatíveis","slug":"não-compatíveis","depth":3,"children":[]},{"title":"Suporte limitado: roles","slug":"suporte-limitado-roles","depth":3,"children":[]},{"title":"Objetos criados com SQL","slug":"objetos-criados-com-sql","depth":3,"children":[]},{"title":"O que acontece quando um objeto não é compatível","slug":"o-que-acontece-quando-um-objeto-não-é-compatível","depth":3,"children":[]}]},{"title":"Encontre o que está faltando na produção","slug":"encontre-o-que-está-faltando-na-produção","depth":2,"children":[]},{"title":"Aplique objetos ausentes na produção","slug":"aplique-objetos-ausentes-na-produção","depth":2,"children":[]},{"title":"Dados foram excluídos ou sobrescritos","slug":"dados-foram-excluídos-ou-sobrescritos","depth":2,"children":[]},{"title":"As credenciais podem ter sido expostas","slug":"as-credenciais-podem-ter-sido-expostas","depth":2,"children":[]},{"title":"Detalhes para o Suporte","slug":"detalhes-para-o-suporte","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"dynamicCss":".mint-relative {\n position: relative\n}\n.mint-block {\n display: block\n}\n.mint-max-w-full {\n max-width: 100%\n}\n.mint-overflow-x-hidden {\n overflow-x: hidden\n}\n.\\!mint-whitespace-pre-wrap {\n white-space: pre-wrap !important\n}\n.\\!mint-break-words {\n overflow-wrap: break-word !important\n}\n.mint-pr-7 {\n padding-right: 1.75rem\n}\n.mint-font-sans {\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"\n}","subdomain":"replit","siteName":"Replit","title":"Solucionar problemas de bancos de dados - Replit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/help/troubleshooting/databases","matchLevel":1},"fr":{"href":"/fr/help/troubleshooting/databases","matchLevel":1},"pt":{"href":"/pt/help/troubleshooting/databases","matchLevel":0},"ja":{"href":"/ja/help/troubleshooting/databases","matchLevel":1},"ko":{"href":"/ko/help/troubleshooting/databases","matchLevel":1}}},"lastModified":"2026-11-06T15:24:26.770Z","originalFileLocation":"pt/help/troubleshooting/databases.mdx","locale":"pt"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Replit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Solucionar problemas de bancos de dados - Replit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Replit Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.replit.com/pt/help/troubleshooting/databases\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://replit.mintlify.site/_mintlify/api/og/v2?division=Troubleshooting+guides\u0026amp;title=Solucionar+problemas+de+bancos+de+dados\u0026amp;description=Investigue+com+seguran%C3%A7a+falhas+de+conex%C3%A3o+com+o+banco+de+dados%2C+endpoints+pausados%2C+dados+de+produ%C3%A7%C3%A3o+ausentes+e+op%C3%A7%C3%B5es+de+recupera%C3%A7%C3%A3o+sem+excluir+ou+sobrescre\u0026amp;theme=c1942b8f9ebd95f98c5c7c23\u0026amp;signature=cb7174758883604bebb219aa2e2b85409ab3ad5e21116b77870186b517c9027e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Solucionar problemas de bancos de dados - Replit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://replit.mintlify.site/_mintlify/api/og/v2?division=Troubleshooting+guides\u0026amp;title=Solucionar+problemas+de+bancos+de+dados\u0026amp;description=Investigue+com+seguran%C3%A7a+falhas+de+conex%C3%A3o+com+o+banco+de+dados%2C+endpoints+pausados%2C+dados+de+produ%C3%A7%C3%A3o+ausentes+e+op%C3%A7%C3%B5es+de+recupera%C3%A7%C3%A3o+sem+excluir+ou+sobrescre\u0026amp;theme=c1942b8f9ebd95f98c5c7c23\u0026amp;signature=cb7174758883604bebb219aa2e2b85409ab3ad5e21116b77870186b517c9027e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/replit/bmCuvIiWqqoyeE2o/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Replit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF3C00\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@replit\">\u003cmeta data-mint-head name=\"author\" content=\"Replit\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.replit.com/pt/help/troubleshooting/databases\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pt/help/troubleshooting/databases.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.replit.com/pt/help/troubleshooting/databases\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.replit.com/help/troubleshooting/databases\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.replit.com/fr/help/troubleshooting/databases\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.replit.com/ja/help/troubleshooting/databases\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.replit.com/ko/help/troubleshooting/databases\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.replit.com/help/troubleshooting/databases\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.replit.com/#organization\",\"name\":\"Replit\",\"url\":\"https://docs.replit.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/replit/j4of5To8jzehz0JK/logo/light.svg?fit=max\u0026auto=format\u0026n=j4of5To8jzehz0JK\u0026q=85\u0026s=6209cb5927b56fd1781133af05428373\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.replit.com#website\",\"name\":\"Replit\",\"url\":\"https://docs.replit.com\",\"publisher\":{\"@id\":\"https://docs.replit.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.replit.com/pt/help/troubleshooting/databases#webpage\",\"url\":\"https://docs.replit.com/pt/help/troubleshooting/databases\",\"name\":\"Solucionar problemas de bancos de dados\",\"description\":\"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.\",\"dateModified\":\"2026-11-06T15:24:26.770Z\",\"isPartOf\":{\"@id\":\"https://docs.replit.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.replit.com/pt/help/troubleshooting/databases#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.replit.com/pt/help/troubleshooting/databases#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Help center\",\"item\":\"https://docs.replit.com/pt/help/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Troubleshooting guides\",\"item\":\"https://docs.replit.com/pt/help/troubleshooting/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Solucionar problemas de bancos de dados\",\"item\":\"https://docs.replit.com/pt/help/troubleshooting/databases\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.replit.com/pt/help/troubleshooting/databases#article\",\"headline\":\"Solucionar problemas de bancos de dados\",\"name\":\"Solucionar problemas de bancos de dados\",\"description\":\"Investigue com segurança falhas de conexão com o banco de dados, endpoints pausados, dados de produção ausentes e opções de recuperação sem excluir ou sobrescrever seus dados.\",\"url\":\"https://docs.replit.com/pt/help/troubleshooting/databases\",\"mainEntityOfPage\":{\"@id\":\"https://docs.replit.com/pt/help/troubleshooting/databases#webpage\"},\"dateModified\":\"2026-11-06T15:24:26.770Z\",\"publisher\":{\"@id\":\"https://docs.replit.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.replit.com#website\"}}]}\u003c/script>","siteName":"Replit","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/help/troubleshooting/databases"}]},{"language":"fr","navbar":{"links":[],"primary":{"type":"button","label":"Commencer à créer","href":"https://replit.com?ref=docs"}},"pages":[{"title":"fr","href":"/fr/help/troubleshooting/databases"}]},{"language":"pt","navbar":{"links":[],"primary":{"type":"button","label":"Comece a criar","href":"https://replit.com?ref=docs"}},"hidden":false,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/pt/welcome"}]},{"tab":"Chats","pages":[{"title":"Chats","href":"/pt/chat/overview"}]},{"tab":"Apps","dropdowns":[{"dropdown":"Web","icon":"globe","pages":[{"group":"Inícios rápidos","pages":[{"title":"Construa seu primeiro app","sidebarTitle":"Seu primeiro app","icon":"rocket","href":"/pt/build/your-first-app"},{"title":"Construir e publicar a partir de um template","sidebarTitle":"Construir a partir de um template","icon":"palette","href":"/pt/build/build-and-publish-from-template"},{"title":"Construa com o Modo Free","sidebarTitle":"Construa com o Modo Free","icon":"seedling","href":"/pt/build/build-with-free-mode"},{"title":"Publique seu app","sidebarTitle":"Publique seu app","icon":"cloud-arrow-up","href":"/pt/build/publish-your-app"}]},{"group":"Build paths","pages":[{"title":"Prototipe uma ideia de produto","sidebarTitle":"Prototipe uma ideia","icon":"lightbulb","href":"/pt/build/prototype-an-idea"},{"title":"Lance uma página inicial","sidebarTitle":"Lance uma página inicial","icon":"rectangle-list","href":"/pt/build/landing-page"},{"title":"Construa uma vitrine Shopify","sidebarTitle":"Construa uma vitrine Shopify","icon":"bag-shopping","href":"/pt/build/ecommerce-store"},{"title":"Crie um dashboard a partir de dados","sidebarTitle":"Crie um dashboard","icon":"chart-simple","href":"/pt/build/dashboard"},{"title":"Crie um app mobile","sidebarTitle":"Crie um app mobile","icon":"mobile-screen","href":"/pt/build/mobile-app"}]},{"group":"Grow your app","pages":[{"title":"Adicionar login","sidebarTitle":"Adicionar login","icon":"user-lock","href":"/pt/build/add-login"},{"title":"Adicionar um banco de dados","sidebarTitle":"Adicionar um banco de dados","icon":"database","href":"/pt/build/add-database"},{"title":"Adicionar integrações","sidebarTitle":"Adicionar integrações","icon":"plug","href":"/pt/build/add-integrations"},{"title":"Adicionar um domínio personalizado","sidebarTitle":"Adicionar um domínio personalizado","icon":"globe","href":"/pt/build/add-custom-domain"}]},{"group":"Publish and operate","pages":[{"title":"Comprar um domínio","sidebarTitle":"Comprar um domínio","icon":"cart-shopping","href":"/pt/build/domain-purchasing"},{"title":"Ativar Widget de Feedback","sidebarTitle":"Ativar Widget de Feedback","icon":"comment","href":"/pt/build/enable-feedback"},{"title":"Melhore o SEO do seu app","sidebarTitle":"Melhorar SEO","icon":"magnifying-glass-chart","href":"/pt/build/improve-seo"},{"title":"Solucionar problemas de publicação","icon":"triangle-exclamation","href":"/pt/build/troubleshooting"}]},{"group":"Connect \u0026 integrate","pages":[{"title":"Usar Agent Skills","sidebarTitle":"Usar Agent Skills","icon":"puzzle-piece","href":"/pt/build/use-agent-skills"},{"title":"Conectar via MCP","sidebarTitle":"Conectar via MCP","icon":"server","href":"/pt/build/connect-via-mcp"}]},{"group":"Collaborate","pages":[{"title":"Convidar colegas de equipe","sidebarTitle":"Convidar colegas de equipe","icon":"user-plus","href":"/pt/build/invite-teammates"},{"title":"Criar um workspace de equipe","sidebarTitle":"Criar um workspace de equipe","icon":"users-rectangle","href":"/pt/build/create-a-team-workspace"}]},{"group":"Importar","pages":[{"title":"Importar de um provedor","sidebarTitle":"Importar de um provedor","icon":"file-import","href":"/pt/build/import-from-providers"}]}]},{"dropdown":"Mobile","icon":"mobile","groups":[{"group":"Inícios rápidos","pages":[{"title":"Comece seu primeiro app mobile","sidebarTitle":"Comece seu app mobile","icon":"wand-magic-sparkles","href":"/pt/build/mobile-first-app"},{"title":"Pré-visualize e teste no seu celular","sidebarTitle":"Testar com o Expo Go","icon":"mobile","href":"/pt/build/mobile-preview-testing"}]},{"group":"Publish for iOS","pages":[{"title":"Configure sua conta de desenvolvedor Apple","sidebarTitle":"Configurar sua conta","icon":"apple","href":"/pt/build/mobile-apple-account"},{"title":"Envie seu app para o App Store Connect","sidebarTitle":"Enviar seu app","icon":"cloud-arrow-up","href":"/pt/build/mobile-upload-ios"},{"title":"Teste beta com o TestFlight","sidebarTitle":"Testar no TestFlight","icon":"flask","href":"/pt/build/mobile-testflight"},{"title":"Envie para a App Store","sidebarTitle":"Enviar para a App Store","icon":"paper-plane","href":"/pt/build/mobile-publish-ios"}]},{"group":"Add features and grow your app","pages":[{"title":"Adicione login","sidebarTitle":"Adicionar login","icon":"right-to-bracket","href":"/pt/build/mobile-login"},{"title":"Adicione pagamentos com o RevenueCat","sidebarTitle":"Adicionar pagamentos","icon":"credit-card","href":"/pt/build/mobile-payments"},{"title":"Armazene imagens no seu app mobile","sidebarTitle":"Salvar imagens de jogadores","icon":"image","href":"/pt/build/mobile-store-images"},{"title":"Adicione feedback tátil","sidebarTitle":"Adicionar feedback tátil","icon":"wave-square","href":"/pt/build/mobile-haptics"},{"title":"Use componentes nativos do iOS","sidebarTitle":"Usar UI nativa","icon":"apple","href":"/pt/build/mobile-native-components"},{"title":"Use a câmera","sidebarTitle":"Adicionar câmera","icon":"camera","href":"/pt/build/mobile-camera"},{"title":"Acesse contatos","sidebarTitle":"Adicionar contatos","icon":"address-book","href":"/pt/build/mobile-contacts"},{"title":"Envie notificações push","sidebarTitle":"Enviar notificações","icon":"bell","href":"/pt/build/mobile-push-notifications"},{"title":"Colete avaliações e classificações","sidebarTitle":"Coletar avaliações","icon":"star","href":"/pt/build/mobile-collect-reviews"}]},{"group":"Design","pages":[{"title":"Projete seu app","sidebarTitle":"Projete seu app","icon":"palette","href":"/pt/build/mobile-design"},{"title":"Gerar um ícone de app","sidebarTitle":"Gerar ícone do app","icon":"image","href":"/pt/build/mobile-app-icon"},{"title":"Gere capturas de tela da App Store","sidebarTitle":"Gerar ativos da loja","icon":"images","href":"/pt/build/mobile-store-screenshots"}]},{"group":"Collaborate","pages":[{"title":"Crie o PixelGames em equipe","sidebarTitle":"Convide sua equipe","icon":"users","href":"/pt/build/mobile-invite-team"}]}]}]},{"tab":"Code","pages":[{"title":"Code","href":"/pt/build/code/code-with-replit"}]},{"tab":"Designs","pages":[{"title":"Designs","href":"/pt/design/what-is-replit-design"}]},{"tab":"Use cases","pages":[{"title":"Use cases","href":"/pt/use-cases"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/pt/learn/foundations/what-is-an-app"}]},{"tab":"Funcionalidades","anchors":[{"anchor":"Funcionalidades","icon":"book-open","pages":[{"title":"Funcionalidades","href":"/pt/features/collaboration/workspaces"}]},{"anchor":"Registro de alterações","icon":"clock-rotate-left","pages":[{"title":"Registro de alterações","href":"/pt/updates/2026/11/06/changelog"}]},{"anchor":"Help","icon":"circle-question","groups":[{"group":"Help center","pages":[{"title":"Central de ajuda","sidebarTitle":"Visão geral","icon":"circle-question","href":"/pt/help/overview"},{"title":"Cobrança e reembolsos","sidebarTitle":"Cobrança e reembolsos","icon":"receipt","href":"/pt/help/billing-and-refunds"},{"title":"Preços e planos","sidebarTitle":"Preços e planos","icon":"tags","href":"/pt/help/pricing-and-plans"},{"title":"Assinaturas","sidebarTitle":"Assinaturas","icon":"rotate","href":"/pt/help/subscriptions"},{"title":"Agent e IA","sidebarTitle":"Agent e IA","icon":"robot","href":"/pt/help/agent-and-ai"},{"title":"Modo Agente Gratuito","sidebarTitle":"Modo Agente Gratuito","icon":"message-bot","href":"/pt/help/free-agent-mode"},{"title":"Implantação e publicação","sidebarTitle":"Implantação e publicação","icon":"rocket","href":"/pt/help/deployment-and-publishing"},{"title":"Pagamentos e Stripe","sidebarTitle":"Pagamentos e Stripe","icon":"credit-card","href":"/pt/help/payments-and-stripe"},{"title":"Banco de dados","sidebarTitle":"Banco de dados","icon":"database","href":"/pt/help/database"},{"title":"Domínios personalizados e DNS","sidebarTitle":"Domínios personalizados e DNS","icon":"globe","href":"/pt/help/custom-domains-and-dns"},{"title":"Erros de rede e de aplicativos","sidebarTitle":"Erros de rede e de aplicativos","icon":"triangle-exclamation","href":"/pt/help/networking-and-app-errors"},{"title":"Resolvendo \"Este aplicativo está bloqueado\" para Conectores do Google","sidebarTitle":"Erros do Google Suite","icon":"bug","href":"/pt/features/troubleshooting/debugging-google-connectors"},{"title":"Corrigindo Erros de Conexão Expirada do Salesforce","sidebarTitle":"Erros do Salesforce","icon":"bug","href":"/pt/features/troubleshooting/debugging-salesforce-connectors"},{"title":"Conta e acesso","sidebarTitle":"Conta e acesso","icon":"user","href":"/pt/help/account-and-access"},{"title":"Projetos e arquivos","sidebarTitle":"Projetos e arquivos","icon":"folder","href":"/pt/help/projects-and-files"},{"group":"Troubleshooting guides","pages":[{"title":"Guias de solução de problemas","sidebarTitle":"Visão geral da solução de problemas","href":"/pt/help/troubleshooting/overview"},{"title":"Solucionar problemas de implantações","sidebarTitle":"Implantações","href":"/pt/help/troubleshooting/deployments"},{"title":"Solucionar problemas de autenticação de aplicativos","sidebarTitle":"Autenticação de aplicativos","description":"Identifique o provedor de autenticação do seu aplicativo, compare o login em desenvolvimento e em produção e investigue com segurança redirecionamentos, usuários ausentes e erros de domínio.","href":"/pt/help/troubleshooting/auth"},{"title":"Solucionar problemas de bancos de dados","sidebarTitle":"Bancos de dados","href":"/pt/help/troubleshooting/databases"},{"title":"Solucionar problemas de domínios","sidebarTitle":"Domínios","description":"Verifique registros DNS de domínios personalizados, a verificação e o HTTPS, isole falhas de hospedagem de falhas de autenticação e reúna evidências seguras para problemas de domínio não resolvidos.","href":"/pt/help/troubleshooting/domains"}]}]}]}]},{"tab":"Confiança e faturamento","pages":[{"title":"Confiança e faturamento","href":"/pt/category/billing"}]},{"tab":"Enterprise","pages":[{"title":"Enterprise","href":"/pt/teams/welcome"}]}]},{"language":"ja","navbar":{"links":[],"primary":{"type":"button","label":"作成を開始","href":"https://replit.com?ref=docs"}},"hidden":false,"pages":[{"title":"ja","href":"/ja/help/troubleshooting/databases"}]},{"language":"ko","navbar":{"links":[],"primary":{"type":"button","label":"빌드 시작하기","href":"https://replit.com?ref=docs"}},"hidden":false,"pages":[{"title":"ko","href":"/ko/help/troubleshooting/databases"}]}]},"basePath":"","title":"Solucionar problemas de bancos de dados - Replit","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}