[{"data":1,"prerenderedAt":302},["ShallowReactive",2],{"blog-it-version-history-is-not-a-backup":3},{"id":4,"title":5,"body":6,"category":265,"cover":266,"coverAlt":266,"description":267,"draft":268,"extension":269,"faq":270,"image":283,"keywords":284,"meta":290,"navigation":291,"ogTitle":292,"path":293,"published":294,"seo":295,"stem":296,"tldr":297,"updated":294,"__hash__":301},"blog_it\u002Fblog\u002Fversion-history-is-not-a-backup.md","La cronologia delle versioni non è un backup dei tuoi dati.",{"type":7,"value":8,"toc":253},"minimark",[9,13,16,24,29,32,35,38,42,45,48,51,55,58,133,139,142,146,149,152,168,171,175,178,181,184,188,191,196,205,208,216,220,240],[10,11,12],"p",{},"Qualcosa si è rotto, così hai fatto la cosa sensata. Hai aperto la cronologia\ndelle versioni in Lovable o Bolt, hai cercato la versione di stamattina e hai\npremuto ripristina. L'app è tornata esattamente com'era.",[10,14,15],{},"I dati no.",[10,17,18,19,23],{},"Ecco il punto su cui la gente inciampa: ",[20,21,22],"strong",{},"il tuo codice e i tuoi dati sono due\nsistemi separati, e solo uno dei due ha un pulsante annulla."," Il tuo builder\nconserva i disegni della tua app. Il tuo database contiene quello che ci sta\ndentro. La cronologia delle versioni ricostruisce i disegni alla perfezione,\nfino all'ultimo dettaglio, e ti restituisce un edificio identico e vuoto.",[25,26,28],"h2",{"id":27},"la-cronologia-delle-versioni-del-builder-fa-il-backup-del-mio-database","La cronologia delle versioni del builder fa il backup del mio database?",[10,30,31],{},"No. Salva il tuo codice, e i tuoi dati stanno da tutt'altra parte.",[10,33,34],{},"Lovable, Bolt, v0, Replit, Cursor e gli altri tengono tutti una cronologia dei\nfile del progetto: le tue pagine, i tuoi componenti, la tua logica, il tuo\naspetto. Quelli sono i disegni. Ripristinare una versione riscrive quei file\ncom'erano il giorno che hai scelto.",[10,36,37],{},"Il tuo database è un servizio diverso, quasi sempre Supabase, su un account\ntutto suo. Niente nella cronologia del progetto ci entra. Il ripristino non ha\nun'opinione sui tuoi dati perché non riesce a vederli.",[25,39,41],{"id":40},"perché-codice-e-dati-stanno-in-due-posti-diversi","Perché codice e dati stanno in due posti diversi",[10,43,44],{},"Perché i tuoi dati devono sopravvivere a quello che il tuo codice fa di\ncontinuo, cioè cambiare.",[10,46,47],{},"Il tuo codice viene ricostruito ogni volta che pubblichi. Se gli ordini dei tuoi\nutenti stessero lì dentro, sparirebbero ogni volta che sistemi un pulsante. Per\nquesto i due vengono tenuti separati, di proposito: il codice è sostituibile e i\ndati no, ed è per questo che a versionarli sono strumenti diversi.",[10,49,50],{},"Il prezzo di quella separazione è il tema di questo articolo. Ogni strumento che\nversiona uno dei due è cieco rispetto all'altro. Il tuo builder non può\nrecuperare una tabella, e il tuo database non può recuperare una pagina rotta.",[25,52,54],{"id":53},"cosa-succede-davvero-quando-torni-indietro","Cosa succede davvero quando torni indietro",[10,56,57],{},"Le tue schermate tornano com'erano. I tuoi dati non si spostano di un\nmillimetro.",[59,60,61,74],"table",{},[62,63,64],"thead",{},[65,66,67,71],"tr",{},[68,69,70],"th",{},"Cosa",[68,72,73],{},"Tornando indietro con il codice",[75,76,77,86,93,105,115,125],"tbody",{},[65,78,79,83],{},[80,81,82],"td",{},"Pagine, componenti, aspetto",[80,84,85],{},"Ripristinato",[65,87,88,91],{},[80,89,90],{},"La logica della tua app e le sue correzioni",[80,92,85],{},[65,94,95,98],{},[80,96,97],{},"Una tabella che qualcuno ha cancellato",[80,99,100],{},[101,102,104],"key-verdict",{"type":103},"danger","Resta cancellata",[65,106,107,110],{},[80,108,109],{},"Righe sovrascritte da uno script",[80,111,112],{},[101,113,114],{"type":103},"Restano sovrascritte",[65,116,117,120],{},[80,118,119],{},"Una colonna tolta da una migrazione",[80,121,122],{},[101,123,124],{"type":103},"Resta tolta",[65,126,127,130],{},[80,128,129],{},"I file caricati dai tuoi utenti",[80,131,132],{},"Immutati in entrambe le direzioni",[134,135],"diagram",{"alt":136,"caption":137,"src":138},"Tre passaggi in fila. Prima il codice alla versione cinque con sei righe di dati, con la spunta. Poi lo stesso codice con tutte e sei le righe sparite, con la croce. Infine il codice riportato alla versione tre e spuntato, con le sei righe ancora sparite e ancora segnate con la croce.","Il ritorno indietro atterra sul codice e su nient'altro. Riportare i disegni alla versione tre non rimette le righe.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Frollback-timeline-1600x680.png",[10,140,141],{},"La riga della migrazione è quella che sorprende di più. Una migrazione che hai\nlanciato contro il tuo database è già avvenuta: vive nel database, non nel tuo\nrepository, e disfare il file che la descriveva non cambia nulla.",[25,143,145],{"id":144},"dove-morde-davvero","Dove morde davvero",[10,147,148],{},"Nei dieci minuti dopo un errore, quando vai a cercare l'annulla e scopri che non\nesiste.",[10,150,151],{},"Le forme che prende sono del tutto ordinarie:",[153,154,155,159,162,165],"ul",{},[156,157,158],"li",{},"Una cancellazione nell'editor delle tabelle di Supabase che ha preso più righe\ndel previsto.",[156,160,161],{},"Una migrazione assistita dall'IA che ha tolto una colonna per far sparire un\nerrore di tipo.",[156,163,164],{},"Uno script di popolamento o di reset puntato sul progetto in produzione invece\nche su uno di prova.",[156,166,167],{},"Una ripulita di quelli che sembravano dati di prova ed erano l'account vero di\nqualcuno.",[10,169,170],{},"Nessuna di queste cose tocca una sola riga del tuo codice. Ognuna sopravvive\nintatta a un ritorno indietro, ed è per questo che il ritorno indietro sembra\nnon aver fatto niente. Ha fatto esattamente quello che fa.",[25,172,174],{"id":173},"a-cosa-serve-davvero-la-cronologia-delle-versioni","A cosa serve davvero la cronologia delle versioni",[10,176,177],{},"A parecchio, e vale la pena dirlo chiaramente, perché la risposta non è\n«a niente».",[10,179,180],{},"È un annulla vero per problemi veri: un cambio di grafica di cui ti penti, una\npubblicazione che ha rotto una pagina, una modifica dell'IA che ha riscritto in\npeggio una schermata che funzionava, una funzione che alla fine ha reso l'app\npiù difficile da usare. Tutto questo vive nel tuo codice, e per queste cose\nfunziona esattamente come promette.",[10,182,183],{},"Il problema è il presupposto silenzioso che il suo compito copra tutto. Quel\npresupposto non lo fa nessuno apposta: è quello con cui resti quando nessuno ti\ndice che i sistemi sono due.",[25,185,187],{"id":186},"come-ottenere-un-annulla-vero-per-i-tuoi-dati","Come ottenere un annulla vero per i tuoi dati",[10,189,190],{},"Devi mettercelo tu. Cioè una copia del database, presa secondo un calendario,\ntenuta in un posto che perdere l'account non si porterebbe via.",[134,192],{"alt":193,"caption":194,"src":195},"Due linee del tempo. Su quella del codice una freccia torna da sola dal punto più recente a uno precedente. Su quella del database la stessa freccia si chiude soltanto passando per un file salvato.","Tutte e due sanno tornare indietro. La differenza è che l'annulla del tuo codice è arrivato con il builder, e quello dei tuoi dati esiste solo se la copia ce la metti tu.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Ftwo-undo-paths-1600x600.png",[10,197,198,199,204],{},"Ci sono tre modi di farlo, costano cifre e attenzioni diverse, e a ciascuno\nsfugge qualcosa che gli altri coprono.\n",[200,201,203],"a",{"href":202},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Tre modi per fare il backup di un database Supabase","\nli percorre tutti e tre, compreso quello che quasi tutti dovrebbero attivare per\nprimo e il motivo per cui da solo non basta.",[10,206,207],{},"È anche a questo che serve Reeve Care: copie programmate del tuo database\nSupabase, tenute fuori dal tuo account Supabase e controllate prima di contare\ncome fatte. Collega i tuoi bucket Storage e i file caricati dai tuoi\nutenti viaggiano insieme, così un ripristino rimette le righe e le immagini a\ncui puntano.",[10,209,210,211,215],{},"Che cosa contiene una di quelle copie, e che cosa fa davvero il pulsante, è\nnella ",[200,212,214],{"href":213},"\u002Fsupabase-backups","pagina dei backup Supabase",".",[25,217,219],{"id":218},"cosa-fare-questa-settimana","Cosa fare questa settimana",[221,222,223],"key-takeaways",{},[153,224,225,228,231,234,237],{},[156,226,227],{},"Scopri se in questo momento qualcosa sta facendo il backup del tuo database. Non del tuo codice: del tuo database. Se la risposta ci mette più di un minuto ad arrivare, la risposta è no.",[156,229,230],{},"Attiva il backup incluso nel tuo piano Supabase. Ti protegge dai tuoi stessi errori, che sono esattamente il guasto di cui parla questo articolo.",[156,232,233],{},"Tieni anche una copia da un'altra parte, perché un backup che vive dentro l'account non ti aiuta se perdi l'account.",[156,235,236],{},"Fai il backup dei file caricati separatamente. Non stanno né nel tuo codice né nel tuo database.",[156,238,239],{},"Ripristina una copia in un progetto usa e getta, così la prima volta che leggi quel file non è il giorno in cui ti serve.",[10,241,242,243,247,248,252],{},"Prima di chiudere questa scheda, apri il tuo progetto Supabase e guarda se i\nbackup sono attivi. Quel singolo controllo è tutto il lavoro di oggi. La\n",[200,244,246],{"href":245},"\u002Fchecklist","checklist di sicurezza in 10 minuti"," lo copre insieme al resto di\nciò che vale la pena confermare in un'app appena lanciata, e la\n",[200,249,251],{"href":250},"\u002Fis-your-supabase-app-safe","guida alla sicurezza di Supabase"," ripassa cos'altro\nresta comunemente aperto.",{"title":254,"searchDepth":255,"depth":255,"links":256},"",3,[257,259,260,261,262,263,264],{"id":27,"depth":258,"text":28},2,{"id":40,"depth":258,"text":41},{"id":53,"depth":258,"text":54},{"id":144,"depth":258,"text":145},{"id":173,"depth":258,"text":174},{"id":186,"depth":258,"text":187},{"id":218,"depth":258,"text":219},"Backups",null,"Lovable e Bolt tengono una cronologia delle versioni del codice. Il tuo database è un servizio a parte, e tornare indietro non ti restituisce i dati.",false,"md",[271,274,277,280],{"q":272,"a":273},"Ho cancellato una tabella per sbaglio. Posso recuperarla?","Solo da un backup fatto prima della cancellazione, quindi la prima cosa da scoprire è se ne esiste uno. Tornare indietro con il codice non basta, e nemmeno il tuo builder. Su un piano Supabase a pagamento ci sono backup giornalieri, e il ripristino a un momento preciso se lo hai aggiunto. Sul piano gratuito non c'è nulla di automatico. Controlla cosa hai prima di cambiare qualsiasi altra cosa, perché alcune strade di ritorno si complicano appena inizi a scrivere dati nuovi sopra il buco.",{"q":275,"a":276},"Lovable fa il backup del mio database Supabase?","Il tuo builder tiene le versioni dei file del progetto. Il tuo database è un servizio separato sul tuo account Supabase, e niente nella cronologia del progetto ci entra. I builder aggiungono funzioni, quindi guarda la documentazione del tuo invece di dare per scontato in un senso o nell'altro, ma parti dal presupposto che la risposta sia no finché non hai letto che è sì.",{"q":278,"a":279},"La mia cronologia Git è un backup?","No, esattamente per lo stesso motivo per cui non lo è la cronologia delle versioni. Git segue i file da cui viene costruita la tua app. Non ha mai visto una sola riga dei tuoi dati e non può rimetterne nessuna. Un repository e un database sono due cose diverse che si chiamano entrambe «il tuo progetto».",{"q":281,"a":282},"I miei dati ci sono ancora tutti. Devo fare qualcosa oggi?","Oggi è il giorno più economico in cui metterai in piedi questa cosa, perché i dati sono pochi e quello che conta è che l'abitudine esista prima che serva. Le perdite che fanno male sono raramente drammatiche: sono un comando digitato male durante una riparazione notturna, su un progetto con appena abbastanza utenti veri da rendere impossibile ricominciare da zero.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",[285,286,287,288,289],"cronologia delle versioni lovable","cronologia versioni backup database","recuperare tabella cancellata supabase","tornare indietro codice dati","recuperare dati app vibe coded",{},true,"La cronologia delle versioni non è un backup","\u002Fblog\u002Fversion-history-is-not-a-backup","2026-08-10",{"title":5,"description":267},"blog\u002Fversion-history-is-not-a-backup",[298,299,300],"La cronologia delle versioni ripristina il codice. Non tocca mai il database, che è dove stanno i tuoi utenti, i loro contenuti e i loro ordini.","Una tabella cancellata, una riga sovrascritta o una migrazione andata storta sopravvivono intatte a un ritorno indietro.","Il tuo codice ha un annulla incorporato. I tuoi dati ne hanno uno solo se ce lo metti tu.","Z3JTTL1jbQxG0U9wmqVWfoWL4AbCZxVB4F_W0E_2dLs",1787826051033]