Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.
Dans le volet Database, vérifiez si le problème touche le développement ou
la production. Comparez avec l’environnement qui exécute la requête en échec.
Consultez Bases de données de développement et de production.Consultez Replit Status pour voir si un incident correspond.
Ne déduisez pas une panne uniquement à partir d’une erreur de connexion.
Vérifiez s’il existe un problème de facturation en suspens ou une restriction d’utilisation.
Ouvrez le volet Database et sélectionnez l’environnement concerné.
Si Unpause database est disponible, sélectionnez-le, puis réessayez la connexion.
Si le contrôle est absent, vérifiez si un DATABASE_URL configuré manuellement
pointe vers une base de données différente de celle affichée dans le volet.
Comparez les paramètres de connexion en privé. N’affichez pas et ne partagez pas la chaîne de connexion
complète. Ne supprimez pas une configuration de base de données externe volontaire.Si la réactivation échoue, ou si le contrôle reste absent, contactez le support en indiquant
l’environnement, l’erreur et les étapes tentées. Redémarrer à répétition ne remplace pas
l’examen d’une base de données suspendue.
Preview se connecte, mais pas l’application publiée
Vérifiez les secrets de production et la configuration de base de données de l’application publiée,
surtout après une restauration ou une migration. Les secrets de l’espace de travail seuls ne vérifient pas
la connexion de production.Dans Publishing, examinez Adjust settings et les secrets de production.
Si votre application utilise à la fois DATABASE_URL et des variables PostgreSQL individuelles,
assurez-vous qu’elles désignent la même base de données voulue. Enregistrez et publiez la configuration
voulue, puis vérifiez une lecture avant de tester les écritures.Ne copiez jamais d’identifiants de production dans le code frontend ou un dépôt public.
Vérifiez d’abord quelle base de données l’application lit. Une base de développement vide
ou une cible de connexion différente peut ressembler à une perte de données.Vérifiez si une migration récente a modifié les noms de tables ou le schéma. Publier le code de l’application
ne prouve pas que les enregistrements de développement ont été copiés en production.
N’exécutez pas de réinitialisation, ne supprimez pas de tables et ne copiez pas les données de développement sur la production
comme étape de diagnostic.
Replit utilise drizzle-kit, l’outil de migration de Drizzle ORM, pour gérer vos
bases de données à deux moments :
En développement, Agent met à jour votre fichier de schéma Drizzle et exécute
drizzle-kit pour l’appliquer à votre base de données de développement.
Lors de la publication, Replit compare votre base de données de développement avec votre base de données
de production et génère le SQL nécessaire pour mettre la production à jour.
Il compare les bases de données elles-mêmes, pas votre fichier de schéma.
Drizzle-kit ne gère que ce qu’un schéma Drizzle peut décrire : tables,
colonnes, index, contraintes, enums, séquences, vues et politiques de sécurité
au niveau des lignes.
Ces objets ne font pas partie d’un schéma Drizzle ; drizzle-kit ne peut donc pas les comparer ni
les créer en développement, et la publication ne les copie pas en production :
Domaines, types personnalisés créés avec CREATE DOMAIN.
Fonctions, procédures et déclencheurs (triggers).
Autorisations (grants), permissions de table accordées avec GRANT.
Drizzle peut déclarer des rôles, mais leur prise en charge est limitée. Par conséquent, la publication
ne crée, ne modifie ni ne supprime actuellement de rôles.
Vous pouvez créer manuellement n’importe lequel des objets non pris en charge ci-dessus via la console SQL, et Agent peut aussi exécuter du SQL directement sur votre base de données de développement. Ils fonctionneront en développement et dans Preview, mais les objets non pris en charge ne seront pas copiés en production lors de la publication.
Ce qui se passe lorsqu’un objet n’est pas pris en charge
Si une table, une vue, une valeur par défaut ou une politique dépend de l’un de ces objets,
la publication s’arrête à la migration de la base de données avec une erreur telle que :
function my_function(text) does not exist
type "my_domain" does not exist
role "app_user" does not exist
Replit annule la migration échouée, de sorte que votre base de données de production
n’est pas modifiée.Les déclencheurs et les autorisations ne provoquent généralement pas d’erreur. La publication réussit, mais votre
application publiée peut se comporter différemment de Preview. Par exemple, un déclencheur qui
met à jour un horodatage ne s’exécute pas en production.Dans les deux cas, trouvez ce qui manque
et appliquez-le à la production, puis
publiez à nouveau.
Agent peut effectuer cette comparaison pour vous, car il dispose d’un accès en lecture seule à
votre base de données de production. Consultez le prompt dans
Appliquer les objets manquants à la production.
Pour vérifier vous-même, exécutez les mêmes requêtes en lecture seule sur les deux bases de données depuis
la console SQL, puis comparez les résultats :
-- 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;
Tout ce qui apparaît uniquement en développement doit être appliqué à la production.
Certains rôles sont créés par Replit et diffèrent entre les deux bases de données ; vous
n’avez besoin que des rôles utilisés par les politiques ou les autorisations de votre application.
Avancé : ces étapes exécutent du SQL directement sur votre base de données de production active
pour ajouter des objets que la publication ne reprend pas, comme les fonctions, les déclencheurs et
les rôles. L’exécution manuelle de SQL est un flux non pris en charge pour lequel nous ne pouvons
apporter qu’une aide limitée ; nous le recommandons donc uniquement si vous êtes à l’aise avec
SQL.Examinez d’abord vos options dans
Récupération des données, et appliquez
les changements lorsque votre application a peu de trafic.
Demandez à Agent de comparer vos bases de données et d’écrire un script pour tout ce qui
manque. Collez ce prompt dans Agent dans votre projet :Agent peut lire votre base de données de production mais ne peut pas la modifier ; vous exécutez donc
le script vous-même dans les étapes suivantes.
Dans l’outil Database, sélectionnez la base de données de production, ouvrez My Data,
et activez Enable Editing.
Désactivez Enable Editing, puis publiez à nouveau.
La publication ne supprime pas ces objets : ils restent en place pour les publications futures. Conservez le script dans votre projet et réexécutez-le chaque fois que vous ajoutez ou
modifiez l’un de ces objets en développement.
Arrêtez les écritures évitables sur les données concernées pendant l’évaluation de la récupération. Une restauration
peut remplacer des données plus récentes. Préservez l’état actuel et comprenez l’étendue
avant de confirmer une action de récupération.
Notez l’environnement concerné, l’heure approximative de la dernière version correcte connue avec son fuseau horaire,
et ce qui a changé. Consultez les options de récupération et l’historique disponible affichés pour
cette base de données. La conservation et les méthodes de récupération dépendent de la base de données et de
la configuration ; ne supposez pas qu’un horodatage plus ancien est récupérable.Utilisez les instructions propres à la base de données dans
Récupération de données.
Ne supposez pas que la restauration du code de l’application rétablit aussi les données de production.Contactez le support si vous ne parvenez pas à identifier une voie de récupération sûre. La récupération n’est pas
garantie, et augmenter la conservation ne peut pas recréer un historique qui n’a pas été conservé.
Retirez les valeurs exposées des documents partagés. Pour une base de données de production prise en charge,
régénérez ses identifiants
dans l’outil Database. Examinez d’abord les conditions d’éligibilité et l’avertissement d’interruption.
Mettez à jour les clients externes avec la nouvelle chaîne de connexion. Si l’action n’est pas
disponible, contactez le support. Ne supprimez pas la base de données pour effectuer la rotation des identifiants.
Incluez l’URL du projet, l’environnement, l’erreur nettoyée, l’heure et le fuseau horaire,
les migrations ou restaurations récentes et les vérifications déjà effectuées. N’incluez pas
d’identifiants de base de données, de chaînes de connexion complètes ni de données clients.
Consultez la liste de vérification du support.
Cette page vous a-t-elle été utile ?
{"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":"fr/help/troubleshooting/databases","slug":"/fr/help/troubleshooting/databases","pageMetadata":{"title":"Dépanner les bases de données","sidebarTitle":"Bases de données","description":"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.","href":"/fr/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: \"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.\"\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:`identifier-la-base-de-données-concernée`,children:`Identifier la base de données concernée`}),`\n`,_jsxs(_components.p,{children:[`Dans le volet `,_jsx(_components.strong,{children:`Database`}),`, vérifiez si le problème touche le développement ou\nla production. Comparez avec l’environnement qui exécute la requête en échec.\nConsultez `,_jsx(_components.a,{href:`/fr/features/data-and-storage/development-and-production`,children:`Bases de données de développement et de production`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Consultez `,_jsx(_components.a,{href:`https://status.replit.com`,children:`Replit Status`}),` pour voir si un incident correspond.\nNe déduisez pas une panne uniquement à partir d’une erreur de connexion.`]}),`\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:`Vérifiez s’il existe un problème de facturation en suspens ou une restriction d’utilisation.`}),`\n`,_jsxs(_components.li,{children:[`Ouvrez le volet `,_jsx(_components.strong,{children:`Database`}),` et sélectionnez l’environnement concerné.`]}),`\n`,_jsxs(_components.li,{children:[`Si `,_jsx(_components.strong,{children:`Unpause database`}),` est disponible, sélectionnez-le, puis réessayez la connexion.`]}),`\n`,_jsxs(_components.li,{children:[`Si le contrôle est absent, vérifiez si un `,_jsx(_components.code,{children:`DATABASE_URL`}),` configuré manuellement\npointe vers une base de données différente de celle affichée dans le volet.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Comparez les paramètres de connexion en privé. N’affichez pas et ne partagez pas la chaîne de connexion\ncomplète. Ne supprimez pas une configuration de base de données externe volontaire.`}),`\n`,_jsx(_components.p,{children:`Si la réactivation échoue, ou si le contrôle reste absent, contactez le support en indiquant\nl’environnement, l’erreur et les étapes tentées. Redémarrer à répétition ne remplace pas\nl’examen d’une base de données suspendue.`}),`\n`,_jsx(Heading,{level:`2`,id:`preview-se-connecte-mais-pas-l’application-publiée`,children:`Preview se connecte, mais pas l’application publiée`}),`\n`,_jsx(_components.p,{children:`Vérifiez les secrets de production et la configuration de base de données de l’application publiée,\nsurtout après une restauration ou une migration. Les secrets de l’espace de travail seuls ne vérifient pas\nla connexion de production.`}),`\n`,_jsxs(_components.p,{children:[`Dans `,_jsx(_components.strong,{children:`Publishing`}),`, examinez `,_jsx(_components.strong,{children:`Adjust settings`}),` et les secrets de production.\nSi votre application utilise à la fois `,_jsx(_components.code,{children:`DATABASE_URL`}),` et des variables PostgreSQL individuelles,\nassurez-vous qu’elles désignent la même base de données voulue. Enregistrez et publiez la configuration\nvoulue, puis vérifiez une lecture avant de tester les écritures.`]}),`\n`,_jsx(_components.p,{children:`Ne copiez jamais d’identifiants de production dans le code frontend ou un dépôt public.`}),`\n`,_jsx(Heading,{level:`2`,id:`des-tables-ou-des-enregistrements-manquent`,children:`Des tables ou des enregistrements manquent`}),`\n`,_jsx(_components.p,{children:`Vérifiez d’abord quelle base de données l’application lit. Une base de développement vide\nou une cible de connexion différente peut ressembler à une perte de données.`}),`\n`,_jsx(_components.p,{children:`Vérifiez si une migration récente a modifié les noms de tables ou le schéma. Publier le code de l’application\nne prouve pas que les enregistrements de développement ont été copiés en production.\nN’exécutez pas de réinitialisation, ne supprimez pas de tables et ne copiez pas les données de développement sur la production\ncomme étape de diagnostic.`}),`\n`,_jsx(Heading,{level:`2`,id:`objets-de-base-de-données-non-pris-en-charge`,children:`Objets de base de données non pris en charge`}),`\n`,_jsx(_components.p,{children:`Replit utilise drizzle-kit, l’outil de migration de Drizzle ORM, pour gérer vos\nbases de données à deux moments :`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`En développement`}),`, Agent met à jour votre fichier de schéma Drizzle et exécute\ndrizzle-kit pour l’appliquer à votre base de données de développement.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Lors de la publication`}),`, Replit compare votre base de données de développement avec votre base de données\nde production et génère le SQL nécessaire pour mettre la production à jour.\nIl compare les bases de données elles-mêmes, pas votre fichier de schéma.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Drizzle-kit ne gère que ce qu’un schéma Drizzle peut décrire : tables,\ncolonnes, index, contraintes, enums, séquences, vues et politiques de sécurité\nau niveau des lignes.`}),`\n`,_jsx(Heading,{level:`3`,id:`non-pris-en-charge`,children:`Non pris en charge`}),`\n`,_jsx(_components.p,{children:`Ces objets ne font pas partie d’un schéma Drizzle ; drizzle-kit ne peut donc pas les comparer ni\nles créer en développement, et la publication ne les copie pas en production :`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Domaines`}),`, types personnalisés créés avec `,_jsx(_components.code,{children:`CREATE DOMAIN`}),`.`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Fonctions, procédures et déclencheurs (triggers).`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Autorisations (grants)`}),`, permissions de table accordées avec `,_jsx(_components.code,{children:`GRANT`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`prise-en-charge-limitée--les-rôles`,children:`Prise en charge limitée : les rôles`}),`\n`,_jsx(_components.p,{children:`Drizzle peut déclarer des rôles, mais leur prise en charge est limitée. Par conséquent, la publication\nne crée, ne modifie ni ne supprime actuellement de rôles.`}),`\n`,_jsx(Heading,{level:`3`,id:`objets-créés-avec-sql`,children:`Objets créés avec SQL`}),`\n`,_jsxs(_components.p,{children:[`Vous pouvez créer manuellement n’importe lequel des objets non pris en charge ci-dessus via la `,_jsx(_components.a,{href:`/fr/features/data-and-storage/work-with-your-data#ex%C3%A9cuter-des-commandes-sql`,children:`console SQL`}),`, et Agent peut aussi exécuter du SQL directement sur votre base de données de développement. Ils fonctionneront en développement et dans Preview, mais les objets non pris en charge ne seront pas copiés en production lors de la publication.`]}),`\n`,_jsx(Heading,{level:`3`,id:`ce-qui-se-passe-lorsqu’un-objet-n’est-pas-pris-en-charge`,children:`Ce qui se passe lorsqu’un objet n’est pas pris en charge`}),`\n`,_jsx(_components.p,{children:`Si une table, une vue, une valeur par défaut ou une politique dépend de l’un de ces objets,\nla publication s’arrête à la migration de la base de données avec une erreur telle que :`}),`\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:`Replit annule la migration échouée, de sorte que votre base de données de production\nn’est pas modifiée.`}),`\n`,_jsx(_components.p,{children:`Les déclencheurs et les autorisations ne provoquent généralement pas d’erreur. La publication réussit, mais votre\napplication publiée peut se comporter différemment de Preview. Par exemple, un déclencheur qui\nmet à jour un horodatage ne s’exécute pas en production.`}),`\n`,_jsxs(_components.p,{children:[`Dans les deux cas, `,_jsx(_components.a,{href:`#trouver-ce-qui-manque-en-production`,children:`trouvez ce qui manque`}),`\net `,_jsx(_components.a,{href:`#appliquer-les-objets-manquants-%C3%A0-la-production`,children:`appliquez-le à la production`}),`, puis\npubliez à nouveau.`]}),`\n`,_jsx(Heading,{level:`2`,id:`trouver-ce-qui-manque-en-production`,children:`Trouver ce qui manque en production`}),`\n`,_jsxs(_components.p,{children:[`Agent peut effectuer cette comparaison pour vous, car il dispose d’un accès en lecture seule à\nvotre base de données de production. Consultez le prompt dans\n`,_jsx(_components.a,{href:`#appliquer-les-objets-manquants-%C3%A0-la-production`,children:`Appliquer les objets manquants à la production`}),`.\nPour vérifier vous-même, exécutez les mêmes requêtes en lecture seule sur les deux bases de données depuis\nla `,_jsx(_components.strong,{children:`console SQL`}),`, puis comparez les résultats :`]}),`\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:`Tout ce qui apparaît uniquement en développement doit être appliqué à la production.\nCertains rôles sont créés par Replit et diffèrent entre les deux bases de données ; vous\nn’avez besoin que des rôles utilisés par les politiques ou les autorisations de votre application.`}),`\n`,_jsx(Heading,{level:`2`,id:`appliquer-les-objets-manquants-à-la-production`,children:`Appliquer les objets manquants à la production`}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Avancé :`}),` ces étapes exécutent du SQL directement sur votre base de données de production active\npour ajouter des objets que la publication ne reprend pas, comme les fonctions, les déclencheurs et\nles rôles. L’exécution manuelle de SQL est un flux non pris en charge pour lequel nous ne pouvons\napporter qu’une aide limitée ; nous le recommandons donc uniquement si vous êtes à l’aise avec\nSQL.`]}),_jsxs(_components.p,{children:[`Examinez d’abord vos options dans\n`,_jsx(_components.a,{href:`/fr/features/data-and-storage/data-recovery`,children:`Récupération des données`}),`, et appliquez\nles changements lorsque votre application a peu de trafic.`]})]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Demandez à Agent de comparer vos bases de données et d’écrire un script pour tout ce qui\nmanque. Collez ce prompt dans Agent dans votre projet :`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AiPrompt`,children:_jsx(AiPrompt,{children:_jsx(_components.p,{children:`D’abord, exécute une requête en lecture seule sur ma base de données de production gérée par Replit pour\nconfirmer que tu peux y accéder. Si ce n’est pas le cas, arrête-toi et dis-moi pourquoi. Ensuite, compare\nmes bases de données de développement et de production et trouve les fonctions,\ndéclencheurs, domaines, rôles ou autorisations qui existent uniquement en développement. Écris\nun seul script SQL qui crée uniquement les objets manquants. Place d’abord les rôles et\nles domaines, puis les fonctions, puis les déclencheurs et les autorisations. Rends chaque\ninstruction sûre à exécuter plusieurs fois. Enregistre le script dans mon projet sous\ndb/production-objects.sql. Ne l’exécute pas et n’essaie pas de modifier la base de données\nde production.`})})}),`\n`,_jsx(_components.p,{children:`Agent peut lire votre base de données de production mais ne peut pas la modifier ; vous exécutez donc\nle script vous-même dans les étapes suivantes.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Dans l’outil `,_jsx(_components.strong,{children:`Database`}),`, sélectionnez la base de données de production, ouvrez `,_jsx(_components.strong,{children:`My Data`}),`,\net activez `,_jsx(_components.strong,{children:`Enable Editing`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Ouvrez la `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/fr/features/data-and-storage/work-with-your-data#ex%C3%A9cuter-des-commandes-sql`,children:`console SQL`})}),` et exécutez le script.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Désactivez `,_jsx(_components.strong,{children:`Enable Editing`}),`, puis publiez à nouveau.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`La publication ne supprime pas ces objets : ils restent en place pour les publications futures. Conservez le script dans votre projet et réexécutez-le chaque fois que vous ajoutez ou\nmodifiez l’un de ces objets en développement.`}),`\n`,_jsx(Heading,{level:`2`,id:`des-données-ont-été-supprimées-ou-écrasées`,children:`Des données ont été supprimées ou écrasées`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Arrêtez les écritures évitables sur les données concernées pendant l’évaluation de la récupération. Une restauration\npeut remplacer des données plus récentes. Préservez l’état actuel et comprenez l’étendue\navant de confirmer une action de récupération.`})}),`\n`,_jsx(_components.p,{children:`Notez l’environnement concerné, l’heure approximative de la dernière version correcte connue avec son fuseau horaire,\net ce qui a changé. Consultez les options de récupération et l’historique disponible affichés pour\ncette base de données. La conservation et les méthodes de récupération dépendent de la base de données et de\nla configuration ; ne supposez pas qu’un horodatage plus ancien est récupérable.`}),`\n`,_jsxs(_components.p,{children:[`Utilisez les instructions propres à la base de données dans\n`,_jsx(_components.a,{href:`/fr/features/data-and-storage/data-recovery`,children:`Récupération de données`}),`.\nNe supposez pas que la restauration du code de l’application rétablit aussi les données de production.`]}),`\n`,_jsx(_components.p,{children:`Contactez le support si vous ne parvenez pas à identifier une voie de récupération sûre. La récupération n’est pas\ngarantie, et augmenter la conservation ne peut pas recréer un historique qui n’a pas été conservé.`}),`\n`,_jsx(Heading,{level:`2`,id:`des-identifiants-ont-peut-être-été-exposés`,children:`Des identifiants ont peut-être été exposés`}),`\n`,_jsxs(_components.p,{children:[`Retirez les valeurs exposées des documents partagés. Pour une base de données de production prise en charge,\n`,_jsx(_components.a,{href:`/fr/features/data-and-storage/connection-details#r%C3%A9g%C3%A9n%C3%A9rer-les-identifiants-de-la-base-de-donn%C3%A9es-de-production`,children:`régénérez ses identifiants`}),`\ndans l’outil `,_jsx(_components.strong,{children:`Database`}),`. Examinez d’abord les conditions d’éligibilité et l’avertissement d’interruption.\nMettez à jour les clients externes avec la nouvelle chaîne de connexion. Si l’action n’est pas\ndisponible, contactez le support. Ne supprimez pas la base de données pour effectuer la rotation des identifiants.`]}),`\n`,_jsx(Heading,{level:`2`,id:`détails-à-fournir-au-support`,children:`Détails à fournir au support`}),`\n`,_jsxs(_components.p,{children:[`Incluez l’URL du projet, l’environnement, l’erreur nettoyée, l’heure et le fuseau horaire,\nles migrations ou restaurations récentes et les vérifications déjà effectuées. N’incluez pas\nd’identifiants de base de données, de chaînes de connexion complètes ni de données clients.\nConsultez la `,_jsx(_components.a,{href:`/fr/help/troubleshooting/overview#when-to-contact-support`,children:`liste de vérification du support`}),`.`]})]})}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":"Dépanner les bases de données","sidebarTitle":"Bases de données","description":"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.","href":"/fr/help/troubleshooting/databases"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[144,612,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"Identifier la base de données concernée","slug":"identifier-la-base-de-données-concernée","depth":2,"children":[]},{"title":"« The endpoint has been disabled »","slug":"«-the-endpoint-has-been-disabled-»","depth":2,"children":[]},{"title":"Preview se connecte, mais pas l’application publiée","slug":"preview-se-connecte-mais-pas-l’application-publiée","depth":2,"children":[]},{"title":"Des tables ou des enregistrements manquent","slug":"des-tables-ou-des-enregistrements-manquent","depth":2,"children":[]},{"title":"Objets de base de données non pris en charge","slug":"objets-de-base-de-données-non-pris-en-charge","depth":2,"children":[{"title":"Non pris en charge","slug":"non-pris-en-charge","depth":3,"children":[]},{"title":"Prise en charge limitée : les rôles","slug":"prise-en-charge-limitée--les-rôles","depth":3,"children":[]},{"title":"Objets créés avec SQL","slug":"objets-créés-avec-sql","depth":3,"children":[]},{"title":"Ce qui se passe lorsqu’un objet n’est pas pris en charge","slug":"ce-qui-se-passe-lorsqu’un-objet-n’est-pas-pris-en-charge","depth":3,"children":[]}]},{"title":"Trouver ce qui manque en production","slug":"trouver-ce-qui-manque-en-production","depth":2,"children":[]},{"title":"Appliquer les objets manquants à la production","slug":"appliquer-les-objets-manquants-à-la-production","depth":2,"children":[]},{"title":"Des données ont été supprimées ou écrasées","slug":"des-données-ont-été-supprimées-ou-écrasées","depth":2,"children":[]},{"title":"Des identifiants ont peut-être été exposés","slug":"des-identifiants-ont-peut-être-été-exposés","depth":2,"children":[]},{"title":"Détails à fournir au support","slug":"détails-à-fournir-au-support","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":"Dépanner les bases de données - Replit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/help/troubleshooting/databases","matchLevel":1},"fr":{"href":"/fr/help/troubleshooting/databases","matchLevel":0},"pt":{"href":"/pt/help/troubleshooting/databases","matchLevel":1},"ja":{"href":"/ja/help/troubleshooting/databases","matchLevel":1},"ko":{"href":"/ko/help/troubleshooting/databases","matchLevel":1}}},"lastModified":"2026-11-06T15:24:26.766Z","originalFileLocation":"fr/help/troubleshooting/databases.mdx","locale":"fr"},"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=\"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.\">\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=\"Dépanner les bases de données - Replit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Replit Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.replit.com/fr/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=D%C3%A9panner+les+bases+de+donn%C3%A9es\u0026amp;description=Examinez+en+toute+s%C3%A9curit%C3%A9+les+%C3%A9checs+de+connexion+%C3%A0+la+base+de+donn%C3%A9es%2C+les+points+de+terminaison+suspendus%2C+les+donn%C3%A9es+de+production+manquantes+et+les+option\u0026amp;theme=c1942b8f9ebd95f98c5c7c23\u0026amp;signature=813585568dd9f481c5e5a5ae4220967fc9a44f57e81a3407c585f0ce732bccc3\">\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=\"Dépanner les bases de données - Replit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://replit.mintlify.site/_mintlify/api/og/v2?division=Troubleshooting+guides\u0026amp;title=D%C3%A9panner+les+bases+de+donn%C3%A9es\u0026amp;description=Examinez+en+toute+s%C3%A9curit%C3%A9+les+%C3%A9checs+de+connexion+%C3%A0+la+base+de+donn%C3%A9es%2C+les+points+de+terminaison+suspendus%2C+les+donn%C3%A9es+de+production+manquantes+et+les+option\u0026amp;theme=c1942b8f9ebd95f98c5c7c23\u0026amp;signature=813585568dd9f481c5e5a5ae4220967fc9a44f57e81a3407c585f0ce732bccc3\">\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/fr/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=\"/fr/help/troubleshooting/databases.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.replit.com/fr/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=\"pt\" href=\"https://docs.replit.com/pt/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/fr/help/troubleshooting/databases#webpage\",\"url\":\"https://docs.replit.com/fr/help/troubleshooting/databases\",\"name\":\"Dépanner les bases de données\",\"description\":\"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.\",\"dateModified\":\"2026-11-06T15:24:26.766Z\",\"isPartOf\":{\"@id\":\"https://docs.replit.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.replit.com/fr/help/troubleshooting/databases#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.replit.com/fr/help/troubleshooting/databases#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Help center\",\"item\":\"https://docs.replit.com/fr/help/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Troubleshooting guides\",\"item\":\"https://docs.replit.com/fr/help/troubleshooting/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Dépanner les bases de données\",\"item\":\"https://docs.replit.com/fr/help/troubleshooting/databases\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.replit.com/fr/help/troubleshooting/databases#article\",\"headline\":\"Dépanner les bases de données\",\"name\":\"Dépanner les bases de données\",\"description\":\"Examinez en toute sécurité les échecs de connexion à la base de données, les points de terminaison suspendus, les données de production manquantes et les options de récupération sans supprimer ni écraser vos données.\",\"url\":\"https://docs.replit.com/fr/help/troubleshooting/databases\",\"mainEntityOfPage\":{\"@id\":\"https://docs.replit.com/fr/help/troubleshooting/databases#webpage\"},\"dateModified\":\"2026-11-06T15:24:26.766Z\",\"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"}},"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/fr/welcome"}]},{"tab":"Chats","pages":[{"title":"Chats","href":"/fr/chat/overview"}]},{"tab":"Apps","dropdowns":[{"dropdown":"Web","icon":"globe","pages":[{"group":"Démarrages rapides","pages":[{"title":"Créez votre première application","sidebarTitle":"Votre première application","icon":"rocket","href":"/fr/build/your-first-app"},{"title":"Créer et publier à partir d'un template","sidebarTitle":"Créer à partir d'un template","icon":"palette","href":"/fr/build/build-and-publish-from-template"},{"title":"Créer avec le mode Free","sidebarTitle":"Créer avec le mode Free","icon":"seedling","href":"/fr/build/build-with-free-mode"},{"title":"Publier votre application","sidebarTitle":"Publier votre application","icon":"cloud-arrow-up","href":"/fr/build/publish-your-app"}]},{"group":"Build paths","pages":[{"title":"Prototyper une idée de produit","sidebarTitle":"Prototyper une idée","icon":"lightbulb","href":"/fr/build/prototype-an-idea"},{"title":"Lancer une page d'accueil","sidebarTitle":"Lancer une page d'accueil","icon":"rectangle-list","href":"/fr/build/landing-page"},{"title":"Créer une boutique Shopify","sidebarTitle":"Créer une boutique Shopify","icon":"bag-shopping","href":"/fr/build/ecommerce-store"},{"title":"Créer un tableau de bord à partir de données","sidebarTitle":"Créer un tableau de bord","icon":"chart-simple","href":"/fr/build/dashboard"},{"title":"Créer une application mobile","sidebarTitle":"Créer une application mobile","icon":"mobile-screen","href":"/fr/build/mobile-app"}]},{"group":"Grow your app","pages":[{"title":"Ajouter une connexion","sidebarTitle":"Ajouter une connexion","icon":"user-lock","href":"/fr/build/add-login"},{"title":"Ajouter une base de données","sidebarTitle":"Ajouter une base de données","icon":"database","href":"/fr/build/add-database"},{"title":"Ajouter des intégrations","sidebarTitle":"Ajouter des intégrations","icon":"plug","href":"/fr/build/add-integrations"},{"title":"Ajouter un domaine personnalisé","sidebarTitle":"Ajouter un domaine personnalisé","icon":"globe","href":"/fr/build/add-custom-domain"}]},{"group":"Publish and operate","pages":[{"title":"Acheter un domaine","sidebarTitle":"Acheter un domaine","icon":"cart-shopping","href":"/fr/build/domain-purchasing"},{"title":"Activer le widget de feedback","sidebarTitle":"Activer le widget de feedback","icon":"comment","href":"/fr/build/enable-feedback"},{"title":"Améliorer le référencement de votre application","sidebarTitle":"Améliorer le SEO","icon":"magnifying-glass-chart","href":"/fr/build/improve-seo"},{"title":"Résoudre les problèmes de publication","icon":"triangle-exclamation","href":"/fr/build/troubleshooting"}]},{"group":"Connect \u0026 integrate","pages":[{"title":"Utiliser les Compétences Agent","sidebarTitle":"Utiliser les Compétences Agent","icon":"puzzle-piece","href":"/fr/build/use-agent-skills"},{"title":"Connecter via MCP","sidebarTitle":"Connecter via MCP","icon":"server","href":"/fr/build/connect-via-mcp"}]},{"group":"Collaborate","pages":[{"title":"Inviter des coéquipiers","sidebarTitle":"Inviter des coéquipiers","icon":"user-plus","href":"/fr/build/invite-teammates"},{"title":"Créer un espace de travail d'équipe","sidebarTitle":"Créer un espace de travail d'équipe","icon":"users-rectangle","href":"/fr/build/create-a-team-workspace"}]},{"group":"Importer","pages":[{"title":"Importer depuis un fournisseur","sidebarTitle":"Importer depuis un fournisseur","icon":"file-import","href":"/fr/build/import-from-providers"}]}]},{"dropdown":"Mobile","icon":"mobile","groups":[{"group":"Démarrages rapides","pages":[{"title":"Démarrer votre première application mobile","sidebarTitle":"Démarrer votre application mobile","icon":"wand-magic-sparkles","href":"/fr/build/mobile-first-app"},{"title":"Aperçu et test sur votre téléphone","sidebarTitle":"Tester avec Expo Go","icon":"mobile","href":"/fr/build/mobile-preview-testing"}]},{"group":"Publish for iOS","pages":[{"title":"Configurer votre compte Apple Developer","sidebarTitle":"Configurer votre compte","icon":"apple","href":"/fr/build/mobile-apple-account"},{"title":"Téléverser votre application dans App Store Connect","sidebarTitle":"Téléverser votre application","icon":"cloud-arrow-up","href":"/fr/build/mobile-upload-ios"},{"title":"Testez en bêta avec TestFlight","sidebarTitle":"Tester sur TestFlight","icon":"flask","href":"/fr/build/mobile-testflight"},{"title":"Soumettre à l'App Store","sidebarTitle":"Soumettre pour l'App Store","icon":"paper-plane","href":"/fr/build/mobile-publish-ios"}]},{"group":"Add features and grow your app","pages":[{"title":"Ajouter la connexion","sidebarTitle":"Ajouter la connexion","icon":"right-to-bracket","href":"/fr/build/mobile-login"},{"title":"Ajouter des paiements avec RevenueCat","sidebarTitle":"Ajouter des paiements","icon":"credit-card","href":"/fr/build/mobile-payments"},{"title":"Stocker des images dans votre application mobile","sidebarTitle":"Enregistrer les images des joueurs","icon":"image","href":"/fr/build/mobile-store-images"},{"title":"Ajouter des retours haptiques","sidebarTitle":"Ajouter des haptiques","icon":"wave-square","href":"/fr/build/mobile-haptics"},{"title":"Utiliser les composants natifs iOS","sidebarTitle":"Utiliser l'UI native","icon":"apple","href":"/fr/build/mobile-native-components"},{"title":"Utiliser l'appareil photo","sidebarTitle":"Ajouter l'appareil photo","icon":"camera","href":"/fr/build/mobile-camera"},{"title":"Accéder aux contacts","sidebarTitle":"Ajouter les contacts","icon":"address-book","href":"/fr/build/mobile-contacts"},{"title":"Envoyer des notifications push","sidebarTitle":"Envoyer des notifications","icon":"bell","href":"/fr/build/mobile-push-notifications"},{"title":"Collecter des avis et des notes","sidebarTitle":"Collecter des avis","icon":"star","href":"/fr/build/mobile-collect-reviews"}]},{"group":"Design","pages":[{"title":"Concevez votre application","sidebarTitle":"Concevez votre application","icon":"palette","href":"/fr/build/mobile-design"},{"title":"Générer une icône d'application","sidebarTitle":"Générer une icône","icon":"image","href":"/fr/build/mobile-app-icon"},{"title":"Générer des captures d'écran App Store","sidebarTitle":"Générer les assets du store","icon":"images","href":"/fr/build/mobile-store-screenshots"}]},{"group":"Collaborate","pages":[{"title":"Créer PixelGames en équipe","sidebarTitle":"Inviter votre équipe","icon":"users","href":"/fr/build/mobile-invite-team"}]}]}]},{"tab":"Code","pages":[{"title":"Code","href":"/fr/build/code/code-with-replit"}]},{"tab":"Designs","pages":[{"title":"Designs","href":"/fr/design/what-is-replit-design"}]},{"tab":"Use cases","pages":[{"title":"Use cases","href":"/fr/use-cases"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/fr/learn/foundations/what-is-an-app"}]},{"tab":"Fonctionnalités","anchors":[{"anchor":"Fonctionnalités","icon":"book-open","pages":[{"title":"Fonctionnalités","href":"/fr/features/collaboration/workspaces"}]},{"anchor":"Journal des modifications","icon":"clock-rotate-left","pages":[{"title":"Journal des modifications","href":"/fr/updates/2026/11/06/changelog"}]},{"anchor":"Help","icon":"circle-question","groups":[{"group":"Help center","pages":[{"title":"Centre d'aide","sidebarTitle":"Aperçu","icon":"circle-question","href":"/fr/help/overview"},{"title":"Facturation et remboursements","sidebarTitle":"Facturation et remboursements","icon":"receipt","href":"/fr/help/billing-and-refunds"},{"title":"Tarifs et plans","sidebarTitle":"Tarifs et plans","icon":"tags","href":"/fr/help/pricing-and-plans"},{"title":"Abonnements","sidebarTitle":"Abonnements","icon":"rotate","href":"/fr/help/subscriptions"},{"title":"Agent et IA","sidebarTitle":"Agent et IA","icon":"robot","href":"/fr/help/agent-and-ai"},{"title":"Mode Agent Free","sidebarTitle":"Mode Agent Free","icon":"message-bot","href":"/fr/help/free-agent-mode"},{"title":"Déploiement et publication","sidebarTitle":"Déploiement et publication","icon":"rocket","href":"/fr/help/deployment-and-publishing"},{"title":"Paiements et Stripe","sidebarTitle":"Paiements et Stripe","icon":"credit-card","href":"/fr/help/payments-and-stripe"},{"title":"Base de données","sidebarTitle":"Base de données","icon":"database","href":"/fr/help/database"},{"title":"Domaines personnalisés et DNS","sidebarTitle":"Domaines personnalisés et DNS","icon":"globe","href":"/fr/help/custom-domains-and-dns"},{"title":"Réseau et erreurs d'application","sidebarTitle":"Réseau et erreurs d'application","icon":"triangle-exclamation","href":"/fr/help/networking-and-app-errors"},{"title":"Résoudre l'erreur \"Cette application est bloquée\" pour les connecteurs Google","sidebarTitle":"Erreurs Google Suite","icon":"bug","href":"/fr/features/troubleshooting/debugging-google-connectors"},{"title":"Corriger les erreurs de connexion expirée Salesforce","sidebarTitle":"Erreurs Salesforce","icon":"bug","href":"/fr/features/troubleshooting/debugging-salesforce-connectors"},{"title":"Compte et accès","sidebarTitle":"Compte et accès","icon":"user","href":"/fr/help/account-and-access"},{"title":"Projets et fichiers","sidebarTitle":"Projets et fichiers","icon":"folder","href":"/fr/help/projects-and-files"},{"group":"Troubleshooting guides","pages":[{"title":"Guides de dépannage","sidebarTitle":"Aperçu du dépannage","href":"/fr/help/troubleshooting/overview"},{"title":"Dépanner les déploiements","sidebarTitle":"Déploiements","href":"/fr/help/troubleshooting/deployments"},{"title":"Dépanner l'authentification des applications","sidebarTitle":"Authentification des applications","description":"Identifiez le fournisseur d'authentification de votre application, comparez la connexion en développement et en production, et examinez en toute sécurité les redirections, les utilisateurs manquants et les erreurs de domaine.","href":"/fr/help/troubleshooting/auth"},{"title":"Dépanner les bases de données","sidebarTitle":"Bases de données","href":"/fr/help/troubleshooting/databases"},{"title":"Dépanner les domaines","sidebarTitle":"Domaines","description":"Vérifiez les enregistrements DNS, la vérification et le HTTPS d'un domaine personnalisé, distinguez les échecs d'hébergement de ceux d'authentification et rassemblez des éléments sûrs pour les problèmes de domaine non résolus.","href":"/fr/help/troubleshooting/domains"}]}]}]}]},{"tab":"Confiance et facturation","pages":[{"title":"Confiance et facturation","href":"/fr/category/billing"}]},{"tab":"Entreprise","pages":[{"title":"Entreprise","href":"/fr/teams/welcome"}]}]},{"language":"pt","navbar":{"links":[],"primary":{"type":"button","label":"Comece a criar","href":"https://replit.com?ref=docs"}},"hidden":false,"pages":[{"title":"pt","href":"/pt/help/troubleshooting/databases"}]},{"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":"Dépanner les bases de données - Replit","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}