[{"data":1,"prerenderedAt":302},["ShallowReactive",2],{"blog-es-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_es\u002Fblog\u002Fversion-history-is-not-a-backup.md","El historial de versiones no es un backup. No recupera una tabla.",{"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",{},"Algo se rompió, así que hiciste lo sensato. Abriste el historial de versiones en\nLovable o Bolt, buscaste la versión de esta mañana y pulsaste restaurar. La app\nvolvió exactamente como estaba.",[10,14,15],{},"Los datos no.",[10,17,18,19,23],{},"Aquí está la parte donde la gente tropieza: ",[20,21,22],"strong",{},"tu código y tus datos son dos\nsistemas separados, y solo uno de ellos tiene botón de deshacer."," Tu builder\nguarda los planos de tu app. Tu base de datos guarda lo que hay dentro. El\nhistorial de versiones reconstruye los planos a la perfección, hasta el último\ndetalle, y te devuelve un edificio idéntico y vacío.",[25,26,28],"h2",{"id":27},"el-historial-de-versiones-de-mi-builder-respalda-mi-base-de-datos","¿El historial de versiones de mi builder respalda mi base de datos?",[10,30,31],{},"No. Guarda tu código, y tus datos viven en otro sitio completamente distinto.",[10,33,34],{},"Lovable, Bolt, v0, Replit, Cursor y los demás llevan un historial de los\narchivos de tu proyecto: tus páginas, tus componentes, tu lógica, tus estilos.\nEso son los planos. Restaurar una versión reescribe esos archivos tal y como\nestaban el día que elegiste.",[10,36,37],{},"Tu base de datos es un servicio diferente, casi siempre Supabase, en una cuenta\npropia. Nada del historial de tu proyecto entra ahí. La restauración no tiene\nopinión sobre tus datos porque no puede verlos.",[25,39,41],{"id":40},"por-qué-tu-código-y-tus-datos-viven-en-sitios-distintos","Por qué tu código y tus datos viven en sitios distintos",[10,43,44],{},"Porque tus datos tienen que sobrevivir a lo que tu código hace constantemente,\nque es cambiar.",[10,46,47],{},"Tu código se reconstruye cada vez que publicas. Si los pedidos de tus usuarios\nvivieran dentro, se borrarían cada vez que arreglas un botón. Por eso se\nmantienen aparte, a propósito: el código es reemplazable y los datos no, y por\neso los versionan herramientas distintas.",[10,49,50],{},"El precio de esa separación es de lo que va este artículo. Toda herramienta que\nversiona uno de los dos es ciega al otro. Tu builder no puede recuperar una\ntabla, y tu base de datos no puede recuperar una página rota.",[25,52,54],{"id":53},"qué-pasa-de-verdad-cuando-vuelves-atrás","Qué pasa de verdad cuando vuelves atrás",[10,56,57],{},"Tus pantallas vuelven a como estaban. Tus datos no se mueven en absoluto.",[59,60,61,74],"table",{},[62,63,64],"thead",{},[65,66,67,71],"tr",{},[68,69,70],"th",{},"Qué",[68,72,73],{},"Al volver atrás el código",[75,76,77,86,93,105,115,125],"tbody",{},[65,78,79,83],{},[80,81,82],"td",{},"Páginas, componentes, estilos",[80,84,85],{},"Restaurado",[65,87,88,91],{},[80,89,90],{},"La lógica de tu app y sus arreglos",[80,92,85],{},[65,94,95,98],{},[80,96,97],{},"Una tabla que alguien borró",[80,99,100],{},[101,102,104],"key-verdict",{"type":103},"danger","Sigue borrada",[65,106,107,110],{},[80,108,109],{},"Filas que sobrescribió un script",[80,111,112],{},[101,113,114],{"type":103},"Siguen sobrescritas",[65,116,117,120],{},[80,118,119],{},"Una columna que quitó una migración",[80,121,122],{},[101,123,124],{"type":103},"Sigue quitada",[65,126,127,130],{},[80,128,129],{},"Archivos que subieron tus usuarios",[80,131,132],{},"Sin cambios en ningún sentido",[134,135],"diagram",{"alt":136,"caption":137,"src":138},"Tres pasos en fila. Primero, código en la versión cinco con seis filas de datos, marcado como correcto. Luego el mismo código con las seis filas desaparecidas, marcado con un aspa. Después el código devuelto a la versión tres y marcado como correcto, con las seis filas todavía ausentes y todavía con aspa.","La vuelta atrás cae sobre el código y sobre nada más. Devolver los planos a la versión tres no repone las filas.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Frollback-timeline-1600x680.png",[10,140,141],{},"La fila de la migración es la que más sorprende. Una migración que lanzaste\ncontra tu base de datos ya ocurrió; vive en la base de datos, no en tu\nrepositorio, y deshacer el archivo que la describía no cambia nada.",[25,143,145],{"id":144},"dónde-muerde-esto-de-verdad","Dónde muerde esto de verdad",[10,147,148],{},"En los diez minutos posteriores a un error, cuando vas a buscar el deshacer y\ndescubres que no hay ninguno.",[10,150,151],{},"Las formas que toma son de lo más corriente:",[153,154,155,159,162,165],"ul",{},[156,157,158],"li",{},"Un borrado en el editor de tablas de Supabase que alcanzó más filas de las\nprevistas.",[156,160,161],{},"Una migración asistida por IA que quitó una columna para que desapareciera un\nerror de tipos.",[156,163,164],{},"Un script de carga o de reinicio apuntado al proyecto en producción en vez de\na uno de pruebas.",[156,166,167],{},"Una limpieza de lo que parecían datos de prueba y resultó ser la cuenta real\nde alguien.",[10,169,170],{},"Nada de esto toca una sola línea de tu código. Todo ello sobrevive intacto a una\nvuelta atrás, y por eso la vuelta atrás parece no haber hecho nada. Hizo\nexactamente lo que hace.",[25,172,174],{"id":173},"para-qué-sirve-de-verdad-el-historial-de-versiones","Para qué sirve de verdad el historial de versiones",[10,176,177],{},"Para bastante, y conviene decirlo con claridad, porque la respuesta no es\n«para nada».",[10,179,180],{},"Es un deshacer real para problemas reales: un cambio de diseño del que te\narrepientes, una publicación que rompió una página, una edición de la IA que\nreescribió a peor una pantalla que funcionaba, una función que acabó haciendo la\napp más difícil de usar. Todo eso vive en tu código, y para eso funciona\nexactamente como promete.",[10,182,183],{},"El problema es la suposición callada de que su trabajo lo cubre todo. Esa\nsuposición no la hace nadie a propósito; es con la que te quedas cuando nadie te\ncuenta que hay dos sistemas.",[25,185,187],{"id":186},"cómo-conseguir-un-deshacer-de-verdad-para-tus-datos","Cómo conseguir un deshacer de verdad para tus datos",[10,189,190],{},"Tienes que ponerlo tú. Es decir, una copia de la base de datos, tomada con un\nhorario, guardada en un sitio que perder la cuenta no se lleve por delante.",[134,192],{"alt":193,"caption":194,"src":195},"Dos líneas de tiempo. En la del código, una flecha vuelve sola desde el punto más reciente a uno anterior. En la de la base de datos, esa misma flecha solo se completa pasando por un archivo guardado.","Las dos pueden ir hacia atrás. La diferencia es que el deshacer de tu código venía con el builder, y el de tus datos solo existe si pones tú la copia.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Ftwo-undo-paths-1600x600.png",[10,197,198,199,204],{},"Hay tres maneras de hacerlo, cuestan cantidades distintas de dinero y de\natención, y a cada una se le escapa algo que cubren las otras.\n",[200,201,203],"a",{"href":202},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Tres formas de respaldar una base Supabase","\nrecorre las tres, incluida la que casi todo el mundo debería activar primero y\nla razón por la que no basta por sí sola.",[10,206,207],{},"Para eso está también Reeve Care: copias programadas de tu base de datos de\nSupabase, guardadas fuera de tu cuenta de Supabase y comprobadas antes de contar\ncomo hechas. Conecta tus buckets de Storage y los archivos que subieron\ntus usuarios viajan con ellas, así que una restauración devuelve las filas y las\nimágenes a las que apuntan.",[10,209,210,211,215],{},"Qué contiene una de esas copias, y qué hace realmente el botón, está en la\n",[200,212,214],{"href":213},"\u002Fsupabase-backups","página de copias de Supabase",".",[25,217,219],{"id":218},"qué-hacer-esta-semana","Qué hacer esta semana",[221,222,223],"key-takeaways",{},[153,224,225,228,231,234,237],{},[156,226,227],{},"Averigua si algo está respaldando ahora mismo tu base de datos. No tu código: tu base de datos. Si la respuesta tarda más de un minuto en aparecer, la respuesta es no.",[156,229,230],{},"Activa el backup que incluya tu plan de Supabase. Te protege de tus propios errores, que es justo el fallo del que trata este artículo.",[156,232,233],{},"Guarda además una copia en otro sitio, porque un backup que vive dentro de la cuenta no te sirve si pierdes la cuenta.",[156,235,236],{},"Respalda por separado los archivos subidos. No están ni en tu código ni en tu base de datos.",[156,238,239],{},"Restaura una copia en un proyecto desechable, para que la primera vez que leas ese archivo no sea el día que lo necesitas.",[10,241,242,243,247,248,252],{},"Antes de cerrar esta pestaña, abre tu proyecto de Supabase y mira si los backups\nestán activados. Esa única comprobación es todo el trabajo de hoy. La\n",[200,244,246],{"href":245},"\u002Fchecklist","checklist de seguridad de 10 minutos"," la cubre junto al resto de lo\nque conviene confirmar en una app recién lanzada, y la\n",[200,249,251],{"href":250},"\u002Fis-your-supabase-app-safe","guía de seguridad de Supabase"," repasa qué más se\nsuele dejar abierto.",{"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 y Bolt guardan un historial de versiones de tu código. Tu base de datos es un servicio aparte, y volver atrás no te devuelve tus datos.",false,"md",[271,274,277,280],{"q":272,"a":273},"He borrado una tabla sin querer. ¿Puedo recuperarla?","Solo desde un backup hecho antes del borrado, así que lo primero es averiguar si existe alguno. Volver atrás tu código no lo consigue, y tu builder tampoco. En un plan de pago de Supabase hay backups diarios, y recuperación a un punto en el tiempo si la añadiste. En el plan gratuito no hay nada automático. Comprueba qué tienes antes de cambiar cualquier otra cosa, porque algunas vías de vuelta se complican en cuanto empiezas a escribir datos nuevos sobre el hueco.",{"q":275,"a":276},"¿Lovable hace copias de mi base de datos de Supabase?","Tu builder versiona los archivos de tu proyecto. Tu base de datos es un servicio aparte en tu propia cuenta de Supabase, y nada del historial del proyecto entra ahí. Los builders añaden funciones, así que mira la documentación del tuyo en lugar de suponer en un sentido o en otro, pero da por hecho que la respuesta es no hasta que hayas leído que es sí.",{"q":278,"a":279},"¿Mi historial de Git es un backup?","No, exactamente por la misma razón por la que no lo es el historial de versiones. Git sigue los archivos con los que se construye tu app. Nunca ha visto una sola fila de tus datos y no puede devolver ninguna. Un repositorio y una base de datos son cosas distintas que se llaman las dos «tu proyecto».",{"q":281,"a":282},"Mis datos siguen todos ahí. ¿Tengo que hacer algo hoy?","Hoy es el día más barato en que vas a montar esto, porque los datos son pocos y lo que importa es que la costumbre exista antes de necesitarla. Las pérdidas que duelen rara vez son dramáticas: son un comando mal tecleado durante un arreglo de madrugada, en un proyecto con los usuarios reales justos para que empezar de cero no sea una opción.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",[285,286,287,288,289],"historial de versiones lovable","historial de versiones backup base de datos","recuperar tabla borrada supabase","volver atras codigo datos","recuperar datos app vibe coded",{},true,"El historial de versiones no es un backup de tu base","\u002Fblog\u002Fversion-history-is-not-a-backup","2026-08-10",{"title":5,"description":267},"blog\u002Fversion-history-is-not-a-backup",[298,299,300],"El historial de versiones restaura tu código. Nunca toca tu base de datos, que es donde viven tus usuarios, sus contenidos y sus pedidos.","Una tabla borrada, una fila sobrescrita o una migración torcida sobreviven intactas a una vuelta atrás.","Tu código trae un deshacer incorporado. Tus datos solo tienen uno si tú lo pones ahí.","7MryOFPk6fbVjDMZT62qMzr9BchXUrJm27Xxpv4X7Xk",1787826048206]