--- title: StoreSchema status: published category: store group: Class author: api date: 06/23/2023 order: 29 ---Public Class
Table of Contents - [Properties](#properties) - [currentStoreVersion](#StoreSchema-currentStoreVersion-member) - [types](#StoreSchema-types-member) - [Methods](#methods) - [create](#StoreSchema-create-member-1) - [migratePersistedRecord](#StoreSchema-migratePersistedRecord-member-1) - [migrateStoreSnapshot](#StoreSchema-migrateStoreSnapshot-member-1) - [serialize](#StoreSchema-serialize-member-1) - [serializeEarliestVersion](#StoreSchema-serializeEarliestVersion-member-1) - [validateRecord](#StoreSchema-validateRecord-member-1)
##### Signature ```ts class StoreSchema {} ``` ##### References [UnknownRecord](/gen/store/UnknownRecord-type) --- ## Properties ### `currentStoreVersion` \{#StoreSchema-currentStoreVersion-member} Public Readonly Property ##### Signature ```ts get currentStoreVersion(): number ``` --- ### `types` \{#StoreSchema-types-member} Public Readonly Property ##### Signature ```ts readonly types: { [Record in R as Record['typeName']]: RecordType } ``` ##### References [RecordType](/gen/store/RecordType-class) --- ## Methods ### `create()` \{#StoreSchema-create-member-1} Public Static Method ##### Parameters `types` ```ts { [TypeName in R['typeName']]: { createId: any } } ``` `options` (optional) ```ts StoreSchemaOptions ``` ##### Returns ```ts StoreSchema ``` ##### References [UnknownRecord](/gen/store/UnknownRecord-type), [StoreSchemaOptions](/gen/store/StoreSchemaOptions-type), [StoreSchema](/gen/store/StoreSchema-class) --- ### `migratePersistedRecord()` \{#StoreSchema-migratePersistedRecord-member-1} Public Method ##### Parameters `record` ```ts R ``` `persistedSchema` ```ts SerializedSchema ``` `direction` (optional) ```ts 'down' | 'up' ``` ##### Returns ```ts MigrationResult ``` ##### References [SerializedSchema](/gen/store/SerializedSchema-interface), [MigrationResult](/gen/store/MigrationResult-type) --- ### `migrateStoreSnapshot()` \{#StoreSchema-migrateStoreSnapshot-member-1} Public Method ##### Parameters `storeSnapshot` ```ts StoreSnapshot ``` `persistedSchema` ```ts SerializedSchema ``` ##### Returns ```ts MigrationResult> ``` ##### References [StoreSnapshot](/gen/store/StoreSnapshot-type), [SerializedSchema](/gen/store/SerializedSchema-interface), [MigrationResult](/gen/store/MigrationResult-type) --- ### `serialize()` \{#StoreSchema-serialize-member-1} Public Method ##### Parameters None ##### Returns ```ts SerializedSchema ``` ##### References [SerializedSchema](/gen/store/SerializedSchema-interface) --- ### `serializeEarliestVersion()` \{#StoreSchema-serializeEarliestVersion-member-1} Public Method ##### Parameters None ##### Returns ```ts SerializedSchema ``` ##### References [SerializedSchema](/gen/store/SerializedSchema-interface) --- ### `validateRecord()` \{#StoreSchema-validateRecord-member-1} Public Method ##### Parameters `store` ```ts Store ``` `record` ```ts R ``` `phase` ```ts | 'createRecord' | 'initialize' | 'tests' | 'updateRecord' ``` `recordBefore` ```ts null | R ``` ##### Returns ```ts R ``` ##### References [Store](/gen/store/Store-class) ---