VersionedSqliteDb Class
Abstract base class for a SQLite database that has RequiredVersionRanges stored in it. This class provides version checking when the database is opened, to guarantee that a valid version of software is always used for access.
Notes:
- This class may be used either to access a local file, or one stored in a cloud container.
- Subclasses must provide a
myVersion
member indicating the version of its software, and implement thecreateDDL
member to create its tables.
Extends
Extended by
- PropertyStore.PropertyDb
- SchemaSync.SchemaSyncDb
- ViewStore.ViewDb
Methods
Name | Description | |
---|---|---|
constructor(): VersionedSqliteDb | ||
createDDL(args: any): void Protected Abstract | Implement this method to create all tables for this subclass of VersionedSqliteDb when a new database file is created. |
|
getRequiredVersions(): SQLiteDb.RequiredVersionRanges | Get the required version ranges necessary to open this VersionedSqliteDb. | |
openDb(dbName: string, openMode: OpenMode | SQLiteDb.OpenParams, container?: CloudSqlite.CloudContainer): void | Open this database and verify that this version of the software meets the required version range (as appropriate, read or write) stored in the database. | |
setRequiredVersions(versions: SQLiteDb.RequiredVersionRanges): void | Change the "versions required to open this database" property stored in this database. | |
upgradeSchema(arg: { dbName: string, lockContainer?: { container: CloudSqlite.CloudContainer, user: string }, upgradeFn: () => void }): Promise<void | () => void> | ||
verifyVersions(): void Protected | Verify that this version of the software meets the required version range (as appropriate, read or write) stored in the database. | |
createNewDb(fileName: string, setupArgs?: any): void Static | Create a new database file for the subclass of VersionedSqliteDb. |
Inherited methods
Name | Inherited from | Description |
---|---|---|
abandonChanges(): void Inherited | SQLiteDb | Abandon (cancel) the outermost transaction, discarding all changes since last save. |
closeDb(saveChanges?: boolean): void Inherited | SQLiteDb | Close SQLiteDb. |
createDb(dbName: string): void Inherited | SQLiteDb | Create a SQLiteDb |
createDb(dbName: string, container?: CloudSqlite.CloudContainer, params?: SQLiteDb.CreateParams): void Inherited | SQLiteDb | |
createTable(args: { addTimestamp?: boolean, columns: string, constraints?: string, tableName: string }): void Protected Inherited | SQLiteDb | Create a new table in this database. |
dispose(): void Inherited | SQLiteDb | alias for closeDb. |
executeSQL(sql: string): DbResult Inherited | SQLiteDb | execute an SQL statement |
readLastModTime(tableName: string, rowId: number): Date Inherited | SQLiteDb | Get the last modified date for a row in a table of this database. |
saveChanges(): void Inherited | SQLiteDb | Commit the outermost transaction, writing changes to the file. |
vacuum(args?: SQLiteDb.VacuumDbArgs): void Inherited | SQLiteDb | vacuum this database |
withOpenDb<T>(args: SQLiteDb.WithOpenDbArgs, operation: () => T): T Inherited | SQLiteDb | Open a database, perform an operation, then close the database. |
withPreparedSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T): T Inherited | SQLiteDb | Use a prepared SQL statement, potentially from the statement cache. |
withSavePoint(savePointName: string, operation: () => void): void Inherited | SQLiteDb | Perform an operation on this database within a savepoint. |
withSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T): T Inherited | SQLiteDb | Prepare and execute a callback on a SQL statement. |
Properties
Name | Type | Description | |
---|---|---|---|
_versionProps Protected Static | { name: "versions", namespace: "SQLiteDb" } | ||
myVersion Abstract | string | The current semver "persistence version" of this class. |
Inherited properties
Name | Type | Inherited from | Description |
---|---|---|---|
isOpen Accessor Inherited ReadOnly | boolean | SQLiteDb | Returns true if this SQLiteDb is open |
isReadonly Accessor Inherited ReadOnly | boolean | SQLiteDb | Returns true if this SQLiteDb is open readonly |
Defined in
- core/backend/src/SQLiteDb.ts Line 277
Last Updated: 14 November, 2024
Found something wrong, missing, or unclear on this page?Raise an issue in our repo.