[{"data":1,"prerenderedAt":389},["ShallowReactive",2],{"blog-fr-ai-agent-deleted-my-database":3},{"id":4,"title":5,"body":6,"category":349,"cover":350,"coverAlt":350,"description":351,"draft":352,"extension":353,"faq":354,"image":370,"keywords":371,"meta":377,"navigation":378,"ogTitle":379,"path":380,"published":381,"seo":382,"stem":383,"tldr":384,"updated":381,"__hash__":388},"blog_fr\u002Fblog\u002Fai-agent-deleted-my-database.md","Un agent IA a supprimé mes données Supabase. Que puis-je récupérer ?",{"type":7,"value":8,"toc":336},"minimark",[9,13,16,19,24,27,39,42,46,49,52,55,58,61,65,68,71,74,83,87,90,199,207,211,214,217,223,226,229,233,236,239,242,245,250,254,257,260,263,282,297,304,308,328],[10,11,12],"p",{},"Vous avez demandé à l'agent de nettoyer quelques lignes de test, ou de réparer\nune migration qui refusait de passer. Il a écrit le SQL lui-même, l'a exécuté\nsur le projet que votre application en production utilise, et vous a annoncé que\nc'était fait. L'application se charge toujours. La table est vide.",[10,14,15],{},"Quand un agent IA a supprimé des données de votre base, ce que vous pouvez\nrécupérer était déjà décidé avant qu'il ne s'exécute. Les prochaines minutes\ndécident de ce qui en restera.",[10,17,18],{},"Voici ce que la plupart des réponses à cette question ratent. Elles vous disent\nde revenir en arrière sur le code, ou de demander à l'agent d'annuler. Ni l'un\nni l'autre ne touche vos données, et pendant que vous essayez, la seule chose\nqui reste entre vos mains se dégrade en silence : ce que votre application écrit\ndans la base en ce moment.",[20,21,23],"h2",{"id":22},"que-puis-je-récupérer-après-quune-ia-a-supprimé-mes-données","Que puis-je récupérer après qu'une IA a supprimé mes données ?",[10,25,26],{},"Ce qui se trouvait dans la dernière copie de votre base prise avant la\nsuppression, et rien de ce qui a été créé après.",[10,28,29,30,34,35,38],{},"C'est toute la réponse, et l'essentiel s'est joué il y a des semaines. Il n'y a\npas d'enquête à mener ici, rien à dé-supprimer, aucun journal qui attendrait\ndans Supabase qu'on le rejoue. Une ligne retirée par un ",[31,32,33],"code",{},"DELETE"," ou un\n",[31,36,37],{},"DROP TABLE"," a quitté la base à l'instant où l'instruction est validée. Ce qui\nrevient, c'est une copie, et une copie existe ou n'existe pas.",[10,40,41],{},"Vous avez donc deux tâches devant vous. Savoir quelles copies existent. Et\nempêcher l'écart entre la plus récente et maintenant de coûter plus cher qu'il\nne coûte déjà.",[20,43,45],{"id":44},"arrêtez-dabord-tout-ce-qui-écrit-dans-la-base","Arrêtez d'abord tout ce qui écrit dans la base",[10,47,48],{},"Avant de partir chercher une sauvegarde, coupez tout ce qui écrit de nouvelles\nlignes. La lecture ne pose pas de problème.",[10,50,51],{},"Il y a deux raisons, et la seconde surprend.",[10,53,54],{},"La première : une restauration n'est pas une fusion. Remettre une copie remplace\nles tables qu'elle contient par ce qu'elles contenaient alors, et tout ce qui a\nété écrit après part avec. Un client qui s'inscrit pendant l'heure que vous\npassez à lire ceci est une ligne que vous supprimerez vous-même, plus tard, dans\nune étape que vous avez déjà décidé de faire.",[10,56,57],{},"La seconde : certaines voies se dégradent pendant que vous attendez. La\nrestauration à un instant donné de Supabase ramène le projet entier à une minute\nque vous choisissez, donc plus l'application s'éloigne de l'erreur, plus ce\nretour en arrière jette de travail réel en même temps que les dégâts.",[10,59,60],{},"Une heure derrière un message de maintenance ne coûte pas grand-chose. Expliquer\nà quelqu'un que sa commande a été créée puis retirée volontairement coûte\nbeaucoup plus.",[20,62,64],{"id":63},"puis-je-demander-à-lagent-dannuler","Puis-je demander à l'agent d'annuler ?",[10,66,67],{},"Non. Il n'a jamais eu vos lignes.",[10,69,70],{},"L'agent a écrit une instruction et votre base l'a exécutée. Ce qu'il possède\nmaintenant, c'est la transcription de cette conversation, ce qui n'est pas la\nmême chose qu'une copie de la table. Demandez-lui d'annuler la suppression et\nvous obtiendrez une réponse assurée, du SQL plausible et aucune donnée.",[10,72,73],{},"Le risque mérite d'être décrit précisément, parce que la demande paraît\ninoffensive. Relancer l'agent, c'est une deuxième session sans surveillance sur\nune base en production qui a déjà perdu quelque chose. S'il décide que la bonne\nfaçon de réparer une table manquante est d'en créer une, vous avez maintenant\nune nouvelle table vide là où se trouvait l'ancienne, et vous avez rendu la\nperte plus difficile à décrire à la personne qui vous aidera ensuite.",[10,75,76,77,82],{},"Retirez-le du projet jusqu'à ce que vous sachiez où vous en êtes. Même chose\npour l'historique des versions de votre builder : revenir sur le code de ce\nmatin restaure vos pages et laisse vos données exactement là où elles sont, pour\ndes\n",[78,79,81],"a",{"href":80},"\u002Fblog\u002Fversion-history-is-not-a-backup","raisons qu'il vaut la peine de comprendre une fois",".",[20,84,86],{"id":85},"où-chercher-dans-cet-ordre","Où chercher, dans cet ordre",[10,88,89],{},"Descendez cette liste et arrêtez-vous à la première entrée qui existe. Elle est\nclassée selon la quantité de vos données qui revient, et non selon la facilité.",[91,92,93,109],"table",{},[94,95,96],"thead",{},[97,98,99,103,106],"tr",{},[100,101,102],"th",{},"Où chercher",[100,104,105],{},"Ce qui peut revenir",[100,107,108],{},"Ce qui devait déjà être vrai",[110,111,112,124,135,146,161,172,187],"tbody",{},[97,113,114,118,121],{},[115,116,117],"td",{},"Restauration Supabase à un instant donné",[115,119,120],{},"La base telle qu'elle était à une minute que vous choisissez, y compris celle avant la suppression",[115,122,123],{},"Une offre payante avec l'option PITR, souscrite avant aujourd'hui",[97,125,126,129,132],{},[115,127,128],{},"Sauvegarde quotidienne Supabase",[115,130,131],{},"La base telle qu'elle était à la dernière copie automatique",[115,133,134],{},"Une offre payante",[97,136,137,140,143],{},[115,138,139],{},"Un service de sauvegarde géré",[115,141,142],{},"La base telle qu'elle était à la dernière copie vérifiée par ce service",[115,144,145],{},"Vous en avez branché un avant aujourd'hui",[97,147,148,155,158],{},[115,149,150,151,154],{},"Un ",[31,152,153],{},"pg_dump"," que vous avez lancé",[115,156,157],{},"Tout ce que contient le fichier, aussi ancien que la dernière fois où vous y avez pensé",[115,159,160],{},"Le fichier existe et son écriture s'est terminée",[97,162,163,166,169],{},[115,164,165],{},"Une table de suppression douce ou d'audit",[115,167,168],{},"Uniquement les lignes dont votre application tenait déjà une trace",[115,170,171],{},"Vous l'avez construite ainsi volontairement",[97,173,174,177,184],{},[115,175,176],{},"L'historique des versions de votre builder",[115,178,179],{},[180,181,183],"key-verdict",{"type":182},"danger","Rien",[115,185,186],{},"Il versionne votre code, et vos données vivent dans un autre service.",[97,188,189,192,196],{},[115,190,191],{},"Redemander à l'agent",[115,193,194],{},[180,195,183],{"type":182},[115,197,198],{},"Il n'a jamais détenu de copie de vos lignes.",[10,200,201,202,206],{},"Toutes les voies qui rendent quelque chose ont la même exigence, et c'est elle\nqui tranche : il fallait qu'elle existe avant la suppression. Aucune ne\ns'allume maintenant pour atteindre le passé.\n",[78,203,205],{"href":204},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","L'offre Supabase que vous avez décide des deux premières",",\net la vérification prend environ deux minutes.",[20,208,210],{"id":209},"ce-qui-revient-et-ce-qui-tombe-dans-lécart","Ce qui revient, et ce qui tombe dans l'écart",[10,212,213],{},"La copie, telle qu'elle était, et rien de ce qui s'est passé après.",[10,215,216],{},"Les lignes créées entre cette copie et la suppression ne sont pas abîmées et ne\nse cachent pas dans un recoin. Elles n'ont jamais été écrites ailleurs que dans\nla base dont elles ont été retirées. C'est la partie difficile à accepter devant\nune table vide, parce que perdre quelque chose veut d'habitude dire que la chose\nest encore quelque part.",[218,219],"diagram",{"alt":220,"caption":221,"src":222},"Une frise chronologique de gauche à droite. Trois copies cochées y sont posées, et les lignes que chacune contient sont dessinées au-dessus sous forme de petits points pleins. Après la dernière copie, d'autres points s'accumulent, puis une croix rouge marque la suppression. Les points situés entre la dernière copie et la croix se trouvent dans une bande ombrée et sont chacun barrés.","Une restauration vous ramène à la dernière copie. Les lignes de la bande ombrée n'ont jamais été écrites ailleurs, donc rien ne les ramène.","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fthe-gap-1600x460.png",[10,224,225],{},"La largeur de cette bande dépend entièrement de ce qui prenait les copies. Une\nsauvegarde nocturne peut y mettre une journée de travail entière. La\nrestauration à un instant donné la réduit à une minute, ce qui explique\nl'essentiel de son coût. Un dump que vous avez lancé le jour où vous y avez\npensé y met tout le temps écoulé depuis.",[10,227,228],{},"Il existe une version où l'écart compte à peine, sur une application dont les\ndonnées sont surtout vos propres contenus et changent lentement. Et il en existe\nune où il compte beaucoup : tout ce qui contient des commandes, des messages ou\ndes inscriptions, où une journée de lignes est une journée de gens qui vont le\nremarquer.",[20,230,232],{"id":231},"lagent-en-a-supprimé-une-partie-pas-tout","L'agent en a supprimé une partie, pas tout",[10,234,235],{},"Vous avez alors un vrai choix à faire, et aucune des deux réponses n'est propre.",[10,237,238],{},"Une restauration ne remet pas les lignes manquantes en laissant le reste\ntranquille. Elle remplace les tables de la copie par ce que ces tables\ncontenaient alors, intégralement. Restaurer ramène ce que l'agent a retiré et\nannule chaque bonne ligne écrite depuis. Ne pas restaurer garde les bonnes\nlignes et laisse le trou.",[10,240,241],{},"Le bon choix dépend de la quantité de travail réel posée après la copie. Si la\nréponse est presque rien, restaurez et passez à votre journée. Si la réponse est\ntrois jours de fiches clients, la voie lente gagne en général : exporter\nd'abord les lignes survivantes, restaurer, puis remettre les lignes exportées\npar-dessus. C'est fastidieux, et c'est le seul chemin qui ne perd rien.",[10,243,244],{},"C'est aussi l'argument pour copier la base dans son état cassé actuel avant de\ntoucher à quoi que ce soit. Quelle que soit votre décision, vous voulez pouvoir\nrevenir à l'état d'où vous êtes parti.",[218,246],{"alt":247,"caption":248,"src":249},"Trois formes de base de données alignées. La première est l'état actuel, barré, avec une flèche qui monte vers une copie cochée et mise de côté. La deuxième est le point de restauration choisi que l'on rejoue. Une flèche revient de la copie mise de côté vers le résultat, montrant que la restauration elle-même peut être annulée.","Copiez l'état cassé avant de le remplacer. C'est la différence entre une décision sur laquelle vous pouvez revenir et une décision définitive.","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fsafety-copy-first-1600x520.png",[20,251,253],{"id":252},"comment-se-passe-la-même-heure-quand-une-copie-existe-déjà","Comment se passe la même heure quand une copie existe déjà",[10,255,256],{},"Plus court, et plutôt une décision qu'une recherche. Vous choisissez une copie,\nvous regardez ce qu'elle contenait, et vous appuyez sur le bouton.",[10,258,259],{},"C'est ce que fait Reeve Care : des copies vérifiées de votre base Supabase selon\nun calendrier, chiffrées et conservées hors de votre compte Supabase, avec une\nrestauration en un clic derrière. Avant qu'une restauration démarre, elle prend\nune copie fraîche de l'état actuel, pour que la restauration elle-même puisse\nêtre annulée.",[10,261,262],{},"Les limites tiennent dans la même phrase, parce que les connaître est la façon\nde décider si cela vous convient :",[264,265,266,270,273,276,279],"ul",{},[267,268,269],"li",{},"Cela copie votre base de données, et les fichiers que vos utilisateurs ont téléversés dès que vous connectez vos buckets Storage. C'est facultatif et cela demande une seconde clé.",[267,271,272],{},"Cela fonctionne aujourd'hui avec Supabase et rien d'autre.",[267,274,275],{},"Vous restaurez vers une copie qui existe, pas vers n'importe quelle minute que vous nommez. Au pire vous perdez un intervalle, soit jusqu'à une nuit sur l'offre d'entrée et moins sur les deux au-dessus.",[267,277,278],{},"Les comptes de connexion ne sont jamais touchés. Personne n'est déconnecté, supprimé ou ramené.",[267,280,281],{},"La clé de base de données conservée ne sait que lire, et c'était la promesse au moment où vous l'avez branchée. Réécrire des données demande une clé qui sait écrire, donc une restauration demande votre mot de passe de base à chaque fois et n'en garde aucun. La clé facultative pour vos fichiers sait écrire, parce que Supabase n'en émet aucune en lecture seule pour Storage, et la page où vous la remettez le dit avant.",[10,283,284,288,289,291,292,296],{},[78,285,287],{"href":286},"\u002F#pricing","Ce que couvre chaque offre"," se trouve sur la page d'accueil. Si vous\npréférez ne rien payer pour cela, la version simple de la même protection est un\n",[31,290,153],{}," selon un calendrier que vous tenez vraiment, conservé quelque part que\nla perte de votre compte Supabase n'emporterait pas.\n",[78,293,295],{"href":294},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Les trois voies et ce qui échappe à chacune","\npasse cela en revue sans argumentaire commercial.",[10,298,299,300,82],{},"Cette heure-là est détaillée, copie par copie, sur la ",[78,301,303],{"href":302},"\u002Fsupabase-backups","page des sauvegardes\nSupabase",[20,305,307],{"id":306},"ce-quil-faut-faire-tout-de-suite","Ce qu'il faut faire tout de suite",[309,310,311],"key-takeaways",{},[264,312,313,316,319,322,325],{},[267,314,315],{},"Arrêtez tout ce qui écrit dans la base. C'est la seule étape ici qui coûte plus cher à mesure que vous la laissez traîner.",[267,317,318],{},"Établissez quelles copies existent avant de décider quoi que ce soit : votre offre Supabase d'abord, puis le moindre dump que vous auriez pris vous-même, puis la question de savoir si votre application tient une trace des lignes supprimées.",[267,320,321],{},"Copiez la base telle qu'elle est maintenant, cassée et tout. Quoi que vous fassiez ensuite, vous voulez un chemin de retour vers ici.",[267,323,324],{},"Après une restauration, vérifiez que l'application peut encore écrire. Une base qui lit correctement et refuse un insert est une restauration à moitié faite, et seul un insert le prouve.",[267,326,327],{},"Une fois l'urgence passée, mettez en place la copie qui aurait fait de tout ceci un problème de dix minutes au lieu d'une matinée.",[10,329,330,331,335],{},"Avant de fermer cet onglet, ouvrez votre projet Supabase et cherchez si quoi que\nce soit copie votre base, puis notez où cette copie se trouve. La\n",[78,332,334],{"href":333},"\u002Fchecklist","checklist de sécurité en 10 minutes"," le couvre avec le reste de ce\nqu'il vaut la peine de confirmer sur une application fraîchement lancée.",{"title":337,"searchDepth":338,"depth":338,"links":339},"",3,[340,342,343,344,345,346,347,348],{"id":22,"depth":341,"text":23},2,{"id":44,"depth":341,"text":45},{"id":63,"depth":341,"text":64},{"id":85,"depth":341,"text":86},{"id":209,"depth":341,"text":210},{"id":231,"depth":341,"text":232},{"id":252,"depth":341,"text":253},{"id":306,"depth":341,"text":307},"Backups",null,"Un agent IA a supprimé des données de votre base. Ce que vous pouvez récupérer était déjà décidé avant, et les prochaines minutes décident du reste.",false,"md",[355,358,361,364,367],{"q":356,"a":357},"Un agent IA a supprimé des lignes dans ma base Supabase. Puis-je les récupérer ?","Seulement à partir d'une copie prise avant son exécution, donc la première chose à établir est de savoir s'il en existe une. Regardez ce que comprend votre offre Supabase, puis cherchez le moindre dump que vous auriez pris vous-même, puis vérifiez si votre application tient par hasard une trace des lignes supprimées. Si rien de tout cela n'existe, les lignes sont perdues, et aucun travail sur l'application n'y changera quoi que ce soit. Établissez cela avant d'écrire quoi que ce soit de nouveau dans la base.",{"q":359,"a":360},"Puis-je demander à l'agent de remettre les données ?","Non. L'agent n'a jamais eu vos lignes. Il a envoyé une instruction à votre base et la base l'a exécutée, donc ce qu'il possède maintenant est la transcription de la conversation et non une copie de la table. Lui demander d'annuler la suppression vous donne une réponse assurée et aucune donnée. Cela signifie aussi une deuxième session sans surveillance sur une base qui a déjà perdu quelque chose.",{"q":362,"a":363},"Je suis sur l'offre gratuite de Supabase. Y a-t-il quelque chose à récupérer ?","Pas chez Supabase. Les sauvegardes automatiques commencent avec les offres payantes, et la restauration à un instant donné est une option au-dessus, donc un projet gratuit n'a de copie d'hier nulle part. Il reste un dump que vous auriez pris vous-même, ou une table de suppression douce ou d'audit que votre application écrivait déjà. Vérifiez les deux avant de supposer le pire, et vérifiez-les avant de continuer à utiliser l'application.",{"q":365,"a":366},"Dois-je laisser l'application tourner pendant que je réfléchis ?","Coupez tout ce qui écrit. La lecture ne pose pas de problème. Les nouvelles lignes posent deux fois problème : restaurer une copie retire tout ce qui a été ajouté après, donc une commande qui arrive maintenant est une donnée que vous supprimerez vous-même plus tard, et un retour à un instant donné a d'autant plus de travail réel à jeter que vous attendez. Un message de maintenance pendant une heure coûte moins cher que la seconde perte.",{"q":368,"a":369},"L'agent a supprimé certaines lignes mais pas toutes. Dois-je quand même tout restaurer ?","C'est le cas inconfortable, et il n'y a pas de réponse propre. Une restauration remplace intégralement les tables de la copie, donc elle ramène ce que vous avez perdu et annule en même temps chaque bonne ligne écrite depuis. Le bon choix dépend de la quantité de travail réel posée après la copie. Si elle est importante, exporter d'abord les lignes survivantes et les remettre par-dessus la restauration est plus lent et ne perd rien.","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",[372,373,374,375,376],"ia a supprimé mes données base récupérer","agent ia a supprimé mes données","cursor a supprimé ma base de données","agent ia a supprimé une table","récupérer des données après suppression par une ia",{},true,"Un agent IA a supprimé mes données Supabase","\u002Fblog\u002Fai-agent-deleted-my-database","2026-08-21",{"title":5,"description":351},"blog\u002Fai-agent-deleted-my-database",[385,386,387],"Si un agent IA a supprimé des données de votre base, vous pouvez récupérer ce que contenait la dernière copie prise avant. Ce qui a été créé ensuite n'a jamais été écrit ailleurs.","Coupez tout ce qui écrit de nouvelles lignes avant de faire quoi que ce soit d'autre. Une restauration retire tout ce qui a été ajouté après la copie, donc une inscription qui arrive maintenant est une ligne que vous supprimerez vous-même.","L'agent ne peut pas remettre les lignes. Il ne les a jamais eues, et le relancer sur une base en production est une occasion supplémentaire de perdre davantage.","qYUk7tRF2dvWQdTq_drVUL8wJXnE_8HfdWH6Rzt0-8w",1787826048205]