Base 스냅샷
IBaseSnapshot
IBaseSnapshot은 Univer Bases에서 사용하는 영속화 형식입니다. 테이블, 테이블 순서, 스키마 버전, 타임스탬프, 선택적 리비전 메타데이터를 포함한 하나의 Base 단위를 설명합니다.
속성
| 속성 | 유형 | 설명 |
|---|---|---|
| id | string | Base 단위의 고유 ID입니다. |
| name | string | Base 이름입니다. |
| schemaVersion | number | 스냅샷 스키마 버전입니다. |
| tables | Record\<string, ITableSnapshot\> | 테이블 ID를 키로 사용하는 테이블입니다. |
| tableOrder | string[] | 정렬된 테이블 ID 목록입니다. |
| createdAt | number | 생성 타임스탬프입니다. |
| updatedAt | number | 업데이트 타임스탬프입니다. |
| createdBy? | string | 생성자 ID입니다. |
| rev? | number | 영속화 또는 협업 계층에서 사용하는 선택적 리비전 값입니다. |
최소 스냅샷
TypeScript
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(),}사용법
IBaseSnapshot은 주로 다음 용도로 사용됩니다.
UniverInstanceType.UNIVER_BASE단위를 생성합니다.- 구조화된 데이터를 영속화하고 복원합니다.
- 서버 측 처리를 위한 데이터를 준비합니다.
- 협업 서비스와 가져오기/내보내기 서비스 간에 데이터를 전송합니다.
스냅샷 객체는 영속화 데이터입니다. Base가 실행된 후에는 스냅샷 객체를 직접 변경하지 말고 Facade API를 사용하세요.
저장 및 복원
Facade save()는 대시보드와 로컬 댓글 등 등록된 플러그인 리소스를 포함합니다. saveToBackend는 애플리케이션의 저장 함수입니다.
TypeScript
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')await saveToBackend(base.save())새 편집기에 같은 플러그인을 등록한 뒤 univerAPI.createBase(savedSnapshot)을 호출하세요. tables만 저장하거나 실행 중인 모델 스냅샷을 직접 수정하지 마세요.
이 가이드는 어떠셨나요?