Importación y exportación de datos
Descripción general
Sección titulada «Descripción general»Rebase incluye herramientas integradas de importación y exportación de datos accesibles directamente desde el panel de administración. La importación admite archivos CSV, JSON y Excel con un asistente de mapeo de columnas. La exportación admite CSV y JSON con campos calculados opcionales.
Ambas opciones están disponibles en todas las colecciones. La exportación se puede configurar por colección con campos calculados; ninguna de las dos se puede desactivar por colección.
Importación de datos
Sección titulada «Importación de datos»Cómo importar
Sección titulada «Cómo importar»- Abre una colección en el panel de administración
- Haz clic en el botón Import en la barra de herramientas
- Selecciona o arrastra y suelta tu archivo
- Mapea las columnas del archivo con las propiedades de la colección
- Obtén una vista previa de los datos y resuelve cualquier error de validación
- Haz clic en Import para guardar todas las entidades
Formatos admitidos
Sección titulada «Formatos admitidos»| Formato | Extensiones | Notas |
|---|---|---|
| CSV | .csv |
Detecta delimitadores automáticamente |
| JSON | .json |
Espera un array de objetos |
| Excel | .xlsx |
Lee la primera hoja |
Mapeo de columnas
Sección titulada «Mapeo de columnas»El asistente de importación intenta automáticamente hacer coincidir las columnas del archivo con las propiedades de la colección por su nombre. Puedes ajustar manualmente los mapeos antes de importar:
- Las coincidencias exactas se mapean automáticamente (p. ej.,
name→name) - Las columnas no coincidentes se pueden mapear manualmente u omitir
- La coerción de tipos gestiona conversiones de cadena a número, de cadena a booleano y el procesamiento de fechas
Validación
Sección titulada «Validación»Antes de importar, el asistente valida todas las filas con respecto a las definiciones de propiedades de tu colección:
- Los campos obligatorios deben estar presentes
- Los valores de enumeración (enum) deben coincidir con las opciones definidas
- Los tipos de datos deben ser compatibles (p. ej., un valor de texto en un campo numérico se marcará)
- Los errores de validación se muestran fila por fila para que puedas corregirlos antes de importar
Configuración de importación
Sección titulada «Configuración de importación»La importación está disponible en todas las colecciones. No existe ninguna configuración por colección para desactivarla.
Exportación de datos
Sección titulada «Exportación de datos»Cómo exportar
Sección titulada «Cómo exportar»- Abre una colección en el panel de administración
- Opcionalmente, aplica filtros para exportar un subconjunto de datos
- Haz clic en el botón Export en la barra de herramientas
- Elige el formato: CSV o JSON
- El archivo se descargará de inmediato
Formatos de exportación
Sección titulada «Formatos de exportación»| Formato | Descripción |
|---|---|
| CSV | Valores separados por comas, compatible con Excel y Google Sheets |
| JSON | Array de objetos, útil para el consumo programático |
Filtrado antes de exportar
Sección titulada «Filtrado antes de exportar»Cualquier filtro activo en la vista de la colección se aplica a la exportación. Esto te permite exportar solo un subconjunto de tus datos:
- Aplica filtros de columna o términos de búsqueda en la vista de la colección
- Haz clic en Export; solo se incluirán las filas filtradas
Configuración de exportación
Sección titulada «Configuración de exportación»La exportación está disponible en todas las colecciones. admin.exportable la configura: asígnale un ExportConfig para agregar columnas calculadas, como se muestra a continuación. El tipo también acepta un booleano, pero nada lo lee; exportable: false no elimina el botón Export.
Agregar campos calculados
Sección titulada «Agregar campos calculados»Usa el objeto ExportConfig para agregar columnas calculadas personalizadas a tus exportaciones. Estas columnas no existen en la base de datos; se calculan en el momento de la exportación:
import { defineCollection } from "@rebasepro/cms-types";
const productsCollection = defineCollection({ slug: "products", table: "products", name: "Products", properties: { /* ... */ }, admin: { exportable: { additionalFields: [ { key: "computed_margin", builder: ({ entity }) => { const price = entity.values.price as number; const cost = entity.values.cost as number; return String(price - cost); } }, { key: "full_url", builder: ({ entity }) => { return `https://mystore.com/products/${entity.id}`; } } ] } }});Cada entrada de additionalFields tiene:
| Propiedad | Tipo | Descripción |
|---|---|---|
key |
string |
Nombre de la columna en la exportación |
builder |
({ entity, context }) => string | Promise<string> |
Función que calcula el valor |
La función builder recibe la entity actual y el RebaseContext (que incluye al usuario autenticado), por lo que puedes calcular valores basándote tanto en los datos como en los permisos.
Campos calculados asíncronos
Sección titulada «Campos calculados asíncronos»La función builder puede ser asíncrona, lo cual resulta útil cuando el valor calculado requiere una consulta a la base de datos o una llamada a la API:
exportable: { additionalFields: [ { key: "author_name", builder: async ({ entity, context }) => { const author = await context.data.users.findById( entity.values.authorId as string ); return author?.values.displayName ?? "Unknown"; } } ]}Próximos pasos
Sección titulada «Próximos pasos»- Collections — Define tu modelo de datos
- Frontend Overview — Panel de administración y componentes de interfaz de usuario
- Client SDK — Acceso programático a datos