Base Snapshot
IBaseSnapshot
IBaseSnapshot es el formato de persistencia utilizado por Univer Bases. Describe una unidad base, incluidas tablas, orden de las tablas, versión del esquema, marcas de tiempo y metadatos de revisión opcionales.
Propiedades
| Propiedad | Tipo | Descripción |
|---|---|---|
| id | string | Id. único de la unidad base. |
| name | string | Nombre base. |
| schemaVersion | number | Versión del esquema de instantánea. |
| tables | Record\<string, ITableSnapshot\> | Tablas codificadas por ID de tabla. |
| tableOrder | string[] | Lista ordenada de tablas ids. |
| createdAt | number | Marca de tiempo de creación. |
| updatedAt | number | Marca de tiempo de actualización. |
| createdBy? | string | Id. del creador. |
| rev? | number | Valor de revisión opcional utilizado por las capas de persistencia o colaboración. |
Instantánea mínima
const baseSnapshot = { id: 'base-1', name: 'Product tracker', schemaVersion: 1, tableOrder: ['tasks'], tables: { tasks: { id: 'tasks', name: 'Tasks', primaryFieldId: 'title', fieldOrder: ['title', 'status'], fields: { title: { id: 'title', name: 'Title', type: 'text', config: {} }, status: { id: 'status', name: 'Status', type: 'singleSelect', config: {} }, }, recordOrder: ['rec-1'], records: { 'rec-1': { id: 'rec-1', values: { title: 'Write docs', status: 'In progress' }, orderKey: 'a0', createdAt: Date.now(), updatedAt: Date.now(), }, }, views: {}, viewOrder: [], }, }, createdAt: Date.now(), updatedAt: Date.now(),}Uso
IBaseSnapshot se utiliza principalmente para:
- Crear una unidad
UniverInstanceType.UNIVER_BASE. - Persistir y restaurar datos estructurados.
- Preparar datos para el procesamiento del lado del servidor.
- Transferir datos entre servicios de colaboración y de importación/exportación.
Los objetos instantáneos son datos de persistencia. Después de ejecutar una Base, prefiera las API de Facade en lugar de mutar el objeto de instantánea directamente.
Guardar y restaurar
Facade save() incluye recursos de los plugins registrados, como paneles y comentarios locales. saveToBackend es la función de persistencia de su aplicación.
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')await saveToBackend(base.save())En una instancia nueva, registre los mismos plugins antes de llamar a univerAPI.createBase(savedSnapshot). No guarde solo tables ni modifique directamente la instantánea del modelo activo.
¿Cómo es esta guía?