Instantané d’une Base
IBaseSnapshot
IBaseSnapshot est le format de persistance utilisé par Univer Bases. Il décrit une unité Base, notamment ses tables, l’ordre de celles-ci, la version du schéma, les horodatages et les métadonnées de révision facultatives.
Propriétés
| Propriété | Type | Description |
|---|---|---|
| id | string | Identifiant unique de l’unité Base. |
| name | string | Nom de la Base. |
| schemaVersion | number | Version du schéma de l’instantané. |
| tables | Record\<string, ITableSnapshot\> | Tables indexées par identifiant de table. |
| tableOrder | string[] | Liste ordonnée des identifiants de tables. |
| createdAt | number | Horodatage de création. |
| updatedAt | number | Horodatage de mise à jour. |
| createdBy? | string | Identifiant de l’auteur. |
| rev? | number | Valeur de révision facultative utilisée par les couches de persistance ou de collaboration. |
Instantané minimal
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(),}Utilisation
IBaseSnapshot sert principalement à :
- Créer une unité
UniverInstanceType.UNIVER_BASE. - Conserver et restaurer des données structurées.
- Préparer des données pour leur traitement côté serveur.
- Transférer des données entre les services de collaboration et les services d’importation et d’exportation.
Les objets d’instantané sont des données de persistance. Une fois la Base en cours d’exécution, utilisez de préférence les API Facade au lieu de modifier directement l’objet d’instantané.
Enregistrer et restaurer
Facade save() inclut les ressources des plugins enregistrés, comme les tableaux de bord et les commentaires locaux. saveToBackend est la fonction de persistance de votre application.
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')await saveToBackend(base.save())Dans une nouvelle instance, enregistrez les mêmes plugins avant univerAPI.createBase(savedSnapshot). Ne sauvegardez pas seulement tables et ne modifiez pas directement l’instantané du modèle actif.
Que pensez-vous de ce guide ?