@paroicms/internal-server-lib
Version:
Common utilitaries for the paroicms server.
61 lines (60 loc) • 2.05 kB
TypeScript
import { type Knex } from "knex";
import type { BasicAppLogger } from "./public.types.js";
export declare const METADATA_TABLE_NAME = "PaMetadata";
export declare const DB_SCHEMA_VERSION_KEY = "dbSchemaVersion";
export type DbMigrationReport = MigratedDbReport | NotMigratedDbReport;
export interface MigratedDbReport {
migrated: true;
fromVersion: number;
schemaVersion: number;
}
export interface NotMigratedDbReport {
migrated: false;
schemaVersion: number;
}
export declare function createOrOpenSqliteConnection(options: {
sqliteFile: string;
ddlFile: string;
dbSchemaName: string;
canCreate: boolean;
logger: BasicAppLogger;
knexLogger?: Knex.Logger;
migrateDb: (cn: Knex) => Promise<DbMigrationReport>;
ensureDependsOn?: {
dependsOn: string;
onMismatch: "error" | "reset";
};
}): Promise<{
cn: Knex;
newDatabase: "created" | "reset" | false;
migrationReport: DbMigrationReport;
databaseId: string;
}>;
export declare function insertNewDatabaseMetadataValues(cn: Knex, options: {
dbSchemaName: string;
dependsOn?: string;
}): Promise<{
databaseId: string;
}>;
export declare function generateDatabaseId(): string;
export declare function executeDdl(cn: Knex, ddlFile: string, { dropAll }?: {
dropAll?: boolean;
}): Promise<void>;
export declare function dropAllUserTables(cn: Knex): Promise<void>;
export declare function getMetadataValue(cn: Knex, { dbSchemaName, key }: {
dbSchemaName: string;
key: string;
}): Promise<string | undefined>;
export declare function setMetadataValue(cn: Knex, { dbSchemaName, key, value, errorIfMissing, }: {
dbSchemaName: string;
key: string;
value: string;
errorIfMissing?: boolean;
}): Promise<void>;
export declare function getMetadataDbSchemaVersion(cn: Knex, { dbSchemaName }: {
dbSchemaName: string;
}): Promise<number>;
export declare function setMetadataDbSchemaVersion(cn: Knex, { dbSchemaName, value }: {
dbSchemaName: string;
value: number;
}): Promise<void>;