Exportación a Postgres
Un comando escribe un proyecto como un paquete que restauras en tu propio Postgres: tablas tipadas generadas a partir de tus modelos, tu contenido publicado y enlaces para descargar tus archivos.
Un comando
foir export postgres escribe un archivo comprimido en el directorio actual. Dale una cadena de conexión como destino y la CLI aplica el paquete desde tu propia máquina con psql, sin enviar la cadena a Fóir. El paquete se transmite hacia ti y no se almacena de nuestro lado. Restaurar requiere Postgres 15 o posterior.
Tablas tipadas y claves foráneas
Cada modelo que contiene registros se convierte en una tabla tipada, generada a partir de su esquema publicado, con las claves de tus campos como columnas en snake_case. Junto a ellas hay tablas para archivos, traducciones por locale, referencias de varios valores y concesiones de acceso. Una referencia que apunta a un solo modelo se convierte en una clave foránea, aplicada después de cargar los datos. Una que puede apuntar a varios modelos no recibe ninguna, porque una sola restricción no puede nombrar varias tablas.
Contenido publicado, salvo que pidas más
Las tablas tipadas contienen la versión publicada de cada registro. Los borradores, las versiones anteriores y las variantes sin publicar se dejan fuera, y también un registro que nunca se publicó. Un modelo sin control de versiones ni publicación exporta sus registros tal como están almacenados. Añade --include-raw y el paquete gana una tabla que contiene cada registro tal como está almacenado, en JSON.
Archivos como enlaces de descarga
El paquete no contiene los archivos en sí. Lista un enlace de descarga con límite de tiempo para cada archivo que tu contenido exportado referencia, con un script que descarga cada uno en la ruta a la que apunta el contenido. Obtienes los originales, y los archivos que nadie referencia no se listan. Cualquiera que tenga la lista puede descargar hasta que los enlaces caduquen, así que trátala como un secreto.
El archivo de verificación
La exportación imprime lo que no pudo transportar: referencias colgantes y valores que no cabrían en su columna, ambos escritos como NULL. Se niega a producir un paquete cuando las filas que descargó no coinciden con un recuento independiente de registros publicados. En tu base de datos restaurada, validate.sql vuelve a comprobar los recuentos de filas y las sumas de verificación por columna. No comprueba las reglas de acceso.
Lee el detalle
La guía de exportación explica cómo ejecutar el comando, qué hay en el paquete, cómo restaurarlo tú mismo y cómo verificar el resultado.