Skip to main content
Version: 7.2

SqliteSchemaHelper

Base class for database-specific schema helpers. Provides SQL generation for DDL operations.

Hierarchy

Index

Constructors

constructor

Accessors

inheritedoptions

  • get options(): { createForeignKeyConstraints?: boolean; defaultDeleteRule?: cascade | no action | set null | set default | restrict; defaultUpdateRule?: cascade | no action | set null | set default | restrict; disableForeignKeys?: boolean; disableForeignKeysForClear?: boolean; ignorePolicies?: boolean; ignoreRoutines?: boolean; ignoreSchema?: string[]; ignoreTriggers?: boolean; managementDbName?: string; skipColumns?: Dictionary<(string | RegExp)[]>; skipTables?: (string | RegExp)[]; skipViews?: (string | RegExp)[]; tableSpace?: string }
  • Returns { createForeignKeyConstraints?: boolean; defaultDeleteRule?: cascade | no action | set null | set default | restrict; defaultUpdateRule?: cascade | no action | set null | set default | restrict; disableForeignKeys?: boolean; disableForeignKeysForClear?: boolean; ignorePolicies?: boolean; ignoreRoutines?: boolean; ignoreSchema?: string[]; ignoreTriggers?: boolean; managementDbName?: string; skipColumns?: Dictionary<(string | RegExp)[]>; skipTables?: (string | RegExp)[]; skipViews?: (string | RegExp)[]; tableSpace?: string }

    • optionalcreateForeignKeyConstraints?: boolean

      Generate foreign key constraints.

    • optionaldefaultDeleteRule?: cascade | no action | set null | set default | restrict

      Default ON DELETE rule for foreign keys. When not set, no rule is emitted and the database uses its native default (NO ACTION/RESTRICT).

    • optionaldefaultUpdateRule?: cascade | no action | set null | set default | restrict

      Default ON UPDATE rule for foreign keys. When not set, no rule is emitted and the database uses its native default (NO ACTION/RESTRICT).

    • optionaldisableForeignKeys?: boolean

      Try to disable foreign key checks during schema operations.

    • optionaldisableForeignKeysForClear?: boolean

      Try to disable foreign key checks during schema.clear(). Enabled by default for MySQL/MariaDB.

    • optionalignorePolicies?: boolean

      Leave row level security policies unmanaged. Declared policies are still created and RLS is still enabled or forced based on the entity metadata, but existing policies are never dropped or altered and RLS is never disabled or unforced — use this to protect hand-written policies from being removed when they are not mirrored in the entity definitions.

    • optionalignoreRoutines?: boolean

      Leave database stored routines (functions/procedures) unmanaged. New routines are still created, but existing routines are never dropped or altered based on the entity metadata — use this to safely adopt routine support without having pre-existing, hand-written routines removed when they are not mirrored in your metadata.

    • optionalignoreSchema?: string[]

      Schema names to ignore when comparing schemas.

    • optionalignoreTriggers?: boolean

      Leave database triggers unmanaged. Declared triggers are still created, but existing triggers are never dropped or altered based on the entity metadata — use this to protect hand-written triggers from being removed when they are not mirrored in the entity definitions.

    • optionalmanagementDbName?: string

      Database name to use for management operations (e.g., creating/dropping databases).

    • optionalskipColumns?: Dictionary<(string | RegExp)[]>

      Column names or patterns to skip during schema generation, keyed by table name.

    • optionalskipTables?: (string | RegExp)[]

      Table names or patterns to skip during schema generation.

    • optionalskipViews?: (string | RegExp)[]

      View names or patterns to skip during schema generation (e.g. PostGIS system views).

    • optionaltableSpace?: string

Methods

alterTable

  • alterTable(diff, safe): string[]
  • Returns SQL statements to apply a table difference (add/drop/alter columns, indexes, foreign keys).


    Parameters

    Returns string[]

inheritedalterTableColumn

  • alterTableColumn(column, table, changedProperties): string[]
  • Parameters

    • column: Column
    • table: DatabaseTable
    • changedProperties: Set<string>

    Returns string[]

inheritedalterTableComment

  • alterTableComment(table, comment): string
  • Parameters

    • table: DatabaseTable
    • optionalcomment: string

    Returns string

inheritedappend

  • append(array, sql, pad): void
  • Parameters

    • array: string[]
    • sql: string | string[]
    • pad: boolean = false

    Returns void

inheritedappendComments

  • appendComments(table): string[]
  • Parameters

    • table: DatabaseTable

    Returns string[]

inheritedcastColumn

  • castColumn(name, type): string
  • Parameters

    • name: string
    • type: string

    Returns string

inheritedcreateCheck

  • createCheck(table, check): string
  • Parameters

    • table: DatabaseTable
    • check: CheckDef<unknown>

    Returns string

inheritedcreateForeignKey

  • createForeignKey(table, foreignKey, alterTable, inline): string
  • Returns SQL to create a foreign key constraint on a table.


    Parameters

    • table: DatabaseTable
    • foreignKey: ForeignKey
    • alterTable: boolean = true
    • inline: boolean = false

    Returns string

inheritedcreateIndex

  • createIndex(index, table, createPrimary): string
  • Parameters

    • index: IndexDef
    • table: DatabaseTable
    • createPrimary: boolean = false

    Returns string

inheritedcreateMaterializedView

  • createMaterializedView(name, schema, definition, withData): string
  • Parameters

    • name: string
    • schema: undefined | string
    • definition: string
    • withData: boolean = true

    Returns string

inheritedcreateRoutine

  • createRoutine(_routine): string
  • Default no-op so SQLite/libSQL silent-skip routine DDL; routine-capable dialects override.


    Parameters

    Returns string

createTable

  • createTable(table, alter): string[]
  • Returns SQL statements to create a table with all its columns, primary key, indexes, and checks.


    Parameters

    • table: DatabaseTable
    • optionalalter: boolean

    Returns string[]

createTableColumn

  • createTableColumn(column, table, _changedProperties): undefined | string
  • Parameters

    • column: Column
    • table: DatabaseTable
    • optional_changedProperties: Set<string>

    Returns undefined | string

createTrigger

  • createTrigger(table, trigger): string
  • Generates SQL to create SQLite triggers. SQLite requires one trigger per event.


    Parameters

    Returns string

inheritedcreateView

  • createView(name, schema, definition): string
  • Parameters

    • name: string
    • schema: undefined | string
    • definition: string

    Returns string

databaseExists

  • databaseExists(connection, name): Promise<boolean>
  • Parameters

    Returns Promise<boolean>

disableForeignKeysSQL

  • disableForeignKeysSQL(): string
  • Returns SQL to disable foreign key checks.


    Returns string

inheriteddropConstraint

  • dropConstraint(table, name): string
  • Parameters

    • table: string
    • name: string

    Returns string

dropForeignKey

  • dropForeignKey(tableName, constraintName): string
  • Parameters

    • tableName: string
    • constraintName: string

    Returns string

dropIndex

  • dropIndex(table, index, oldIndexName): string
  • Parameters

    • table: string
    • index: IndexDef
    • oldIndexName: string = index.keyName

    Returns string

inheriteddropMaterializedViewIfExists

  • dropMaterializedViewIfExists(name, schema): string
  • Parameters

    • name: string
    • optionalschema: string

    Returns string

inheriteddropRoutine

  • dropRoutine(_routine): string
  • Parameters

    Returns string

inheriteddropTableIfExists

  • dropTableIfExists(name, schema): string
  • Returns SQL to drop a table if it exists.


    Parameters

    • name: string
    • optionalschema: string

    Returns string

inheriteddropTrigger

  • dropTrigger(table, trigger): string
  • Generates SQL to drop a database trigger from a table. Override in driver-specific helpers for custom DDL.


    Parameters

    Returns string

inheriteddropViewIfExists

  • dropViewIfExists(name, schema): string
  • Parameters

    • name: string
    • optionalschema: string

    Returns string

enableForeignKeysSQL

  • enableForeignKeysSQL(): string
  • Returns SQL to re-enable foreign key checks.


    Returns string

inheritedfinalizeTable

  • finalizeTable(table, charset, collate): string
  • Parameters

    • table: DatabaseTable
    • charset: string
    • optionalcollate: string

    Returns string

getAddColumnsSQL

  • getAddColumnsSQL(table, columns, diff): string[]
  • Returns SQL to add columns to an existing table.


    Parameters

    Returns string[]

inheritedgetAllRoutines

getAllTables

  • getAllTables(connection, schemas, ctx): Promise<Table[]>
  • Retrieves all tables from the database.


    Parameters

    Returns Promise<Table[]>

inheritedgetAlterNativeEnumSQL

  • getAlterNativeEnumSQL(name, schema, value, items, oldItems): string
  • Parameters

    • name: string
    • optionalschema: string
    • optionalvalue: string
    • optionalitems: string[]
    • optionaloldItems: string[]

    Returns string

inheritedgetChangeColumnCommentSQL

  • getChangeColumnCommentSQL(tableName, to, schemaName): string
  • Parameters

    • tableName: string
    • to: Column
    • optionalschemaName: string

    Returns string

getCreateDatabaseSQL

  • getCreateDatabaseSQL(name): string
  • Parameters

    • name: string

    Returns string

getCreateIndexSQL

  • getCreateIndexSQL(tableName, index): string
  • Returns SQL to create an index on a table.


    Parameters

    Returns string

getCreateNamespaceSQL

  • getCreateNamespaceSQL(name): string
  • Parameters

    • name: string

    Returns string

inheritedgetCreateNativeEnumSQL

  • getCreateNativeEnumSQL(name, values, schema): string
  • Parameters

    • name: string
    • values: unknown[]
    • optionalschema: string

    Returns string

inheritedgetDatabaseExistsSQL

  • getDatabaseExistsSQL(name): string
  • Parameters

    • name: string

    Returns string

inheritedgetDatabaseNotExistsError

  • getDatabaseNotExistsError(dbName): string
  • Parameters

    • dbName: string

    Returns string

inheritedgetDefaultEmptyString

  • getDefaultEmptyString(): string
  • Returns string

getDropColumnsSQL

  • getDropColumnsSQL(tableName, columns, schemaName): string
  • Parameters

    • tableName: string
    • columns: Column[]
    • optionalschemaName: string

    Returns string

getDropDatabaseSQL

  • getDropDatabaseSQL(name): string
  • Parameters

    • name: string

    Returns string

inheritedgetDropIndexSQL

  • getDropIndexSQL(tableName, index): string
  • Returns SQL to drop an index.


    Parameters

    Returns string

getDropNamespaceSQL

  • getDropNamespaceSQL(name): string
  • Parameters

    • name: string

    Returns string

inheritedgetDropNativeEnumSQL

  • getDropNativeEnumSQL(name, schema): string
  • Parameters

    • name: string
    • optionalschema: string

    Returns string

inheritedgetIndexAccessMethod

  • getIndexAccessMethod(_index): string
  • Normalized index access method (e.g. gin on PostgreSQL), empty string when the platform default applies. Used for both DDL emission and index diffing.


    Parameters

    Returns string

inheritedgetListMaterializedViewsSQL

  • getListMaterializedViewsSQL(): string
  • Returns string

getListTablesSQL

  • getListTablesSQL(): string
  • Returns the SQL query to list all tables in the database.


    Returns string

getListViewsSQL

  • getListViewsSQL(): string
  • Returns string

getManagementDbName

  • getManagementDbName(): string
  • Returns string

getNamespaces

  • getNamespaces(connection, ctx): Promise<string[]>
  • Parameters

    Returns Promise<string[]>

inheritedgetPartitioningRebuildSQL

  • getPartitioningRebuildSQL(rebuilds, safe): string[]
  • Generates a data-preserving rebuild for tables whose partitioning was added or changed. Empty by default; only PostgreSQL introspects partitioning, so this is never invoked for other platforms.


    Parameters

    Returns string[]

inheritedgetPostAlterTable

  • getPostAlterTable(tableDiff, safe): string[]
  • Parameters

    Returns string[]

inheritedgetPreAlterTable

  • getPreAlterTable(tableDiff, safe): string[]
  • Parameters

    Returns string[]

getPrimaryKeys

  • getPrimaryKeys(connection, indexes, tableName, schemaName, ctx): Promise<string[]>
  • Parameters

    Returns Promise<string[]>

getReferencedTableName

  • getReferencedTableName(referencedTableName, schema): string
  • SQLite does not support schema-qualified table names in REFERENCES clauses. Foreign key references can only point to tables in the same database.


    Parameters

    • referencedTableName: string
    • optionalschema: string

    Returns string

inheritedgetRenameColumnSQL

  • getRenameColumnSQL(tableName, oldColumnName, to, schemaName): string
  • Returns SQL to rename a column in a table.


    Parameters

    • tableName: string
    • oldColumnName: string
    • to: Column
    • optionalschemaName: string

    Returns string

inheritedgetRenameIndexSQL

  • getRenameIndexSQL(tableName, index, oldIndexName): string[]
  • Parameters

    • tableName: string
    • index: IndexDef
    • oldIndexName: string

    Returns string[]

inheritedgetResetSchemaSQL

  • getResetSchemaSQL(_defaultSchema): string
  • Restores the session's schema to the connection's default after a migration.


    Parameters

    • _defaultSchema: string

    Returns string

inheritedgetRlsAlterSQL

  • getRlsAlterSQL(diff, safe): string[]
  • Row level security DDL for a table difference (enable/disable/force transitions + policy creation). Postgres only.


    Parameters

    Returns string[]

inheritedgetRlsCreateSQL

  • getRlsCreateSQL(table): string[]
  • Row level security DDL for a freshly created table (enable/force + create policies). Postgres only.


    Parameters

    • table: DatabaseTable

    Returns string[]

inheritedgetRlsDropSQL

  • getRlsDropSQL(diff, safe): string[]
  • Drops removed/changed row level security policies; emitted in the pre-alter phase, before any column drop or type alter a policy expression can block. Postgres only.


    Parameters

    Returns string[]

inheritedgetSchemaBeginning

  • getSchemaBeginning(_charset, disableForeignKeys): string
  • Returns SQL to prepend to schema migration scripts (e.g., disabling FK checks).


    Parameters

    • _charset: string
    • optionaldisableForeignKeys: boolean

    Returns string

inheritedgetSchemaEnd

  • getSchemaEnd(disableForeignKeys): string
  • Returns SQL to append to schema migration scripts (e.g., re-enabling FK checks).


    Parameters

    • optionaldisableForeignKeys: boolean

    Returns string

inheritedgetSetSchemaSQL

  • getSetSchemaSQL(_schema): string
  • Sets the current schema for the session (e.g. SET search_path).


    Parameters

    • _schema: string

    Returns string

inheritedgetTablesGroupedBySchemas

  • getTablesGroupedBySchemas(tables): Map<undefined | string, Table[]>
  • Parameters

    Returns Map<undefined | string, Table[]>

inheritedhasNonDefaultPrimaryKeyName

  • hasNonDefaultPrimaryKeyName(table): boolean
  • Parameters

    • table: DatabaseTable

    Returns boolean

inheritedinferLengthFromColumnType

  • inferLengthFromColumnType(type): undefined | number
  • Parameters

    • type: string

    Returns undefined | number

isImplicitIndex

  • isImplicitIndex(name): boolean
  • Implicit indexes will be ignored when diffing


    Parameters

    • name: string

    Returns boolean

loadInformationSchema

  • loadInformationSchema(schema, connection, tables, schemas, ctx): Promise<void>
  • Loads table metadata (columns, indexes, foreign keys) from the database information schema.


    Parameters

    Returns Promise<void>

inheritedloadMaterializedViews

  • loadMaterializedViews(schema, connection, schemaName, ctx): Promise<void>
  • Parameters

    Returns Promise<void>

loadViews

  • loadViews(schema, connection, schemaName, ctx): Promise<void>
  • Parameters

    Returns Promise<void>

inheritedmapForeignKeys

  • mapForeignKeys(fks, tableName, schemaName): Dictionary
  • Parameters

    • fks: any[]
    • tableName: string
    • optionalschemaName: string

    Returns Dictionary

inheritednormaliseRoutineParamDirection

  • normaliseRoutineParamDirection(direction): in | out | inout
  • T-SQL doesn't distinguish OUT from INOUT in the catalog — overrides fold 'out' into 'inout'.


    Parameters

    • direction: in | out | inout

    Returns in | out | inout

inheritednormalizeDefaultValue

  • normalizeDefaultValue(defaultValue, length, defaultValues): string | number
  • Parameters

    Returns string | number

inheritedrefreshMaterializedView

  • refreshMaterializedView(name, schema, concurrently): string
  • Parameters

    • name: string
    • optionalschema: string
    • concurrently: boolean = false

    Returns string

inheritedresolveMigrationSchema

  • resolveMigrationSchema(schema): undefined | string
  • Returns undefined for schemaless drivers, throws for drivers that have schemas but no session switch.


    Parameters

    • schema: undefined | string

    Returns undefined | string

inheritedroutineParamReference

  • routineParamReference(name): string
  • T-SQL requires @name inside the body; PG/MySQL/Oracle use the bare name.


    Parameters

    • name: string

    Returns string

inheritedsplitTableName

  • splitTableName(name, skipDefaultSchema): [undefined | string, string]
  • Parameters

    • name: string
    • skipDefaultSchema: boolean = false

    Returns [undefined | string, string]

inheritedsupportsMigrationSchema

  • supportsMigrationSchema(): boolean
  • Whether the driver supports setting a runtime schema per migration run.


    Returns boolean

supportsSchemaConstraints

  • supportsSchemaConstraints(): boolean
  • Returns boolean

tableExists

  • tableExists(connection, tableName, _schemaName, ctx): Promise<boolean>
  • Checks whether a specific table exists in a given schema (not the connection's current schema).


    Parameters

    Returns Promise<boolean>

Page Options