UNPKG

@riao/dbal

Version:
136 lines (135 loc) 4.39 kB
import { AddColumnsOptions, AddForeignKeyOptions, ChangeColumnOptions, DropColumnOptions, DropForeignKeyOptions, RenameTableOptions, CreateDatabaseOptions, CreateTableOptions, CreateUserOptions, GrantOptions, DropDatabaseOptions, DropTableOptions, DropUserOptions, TruncateOptions, DataDefinitionBuilder, CreateIndexOptions } from '../ddl'; import { Repository, RepositoryInit, RepositoryOptions } from '../repository'; import { DropTriggerOptions, TriggerOptions } from '../triggers'; export interface DDLRepositoryOptions extends RepositoryOptions { ddlBuilderType: typeof DataDefinitionBuilder; } export type DDLRepositoryInit = RepositoryInit; /** * Use the DDL Repository to create & modify your database schema */ export declare class DataDefinitionRepository extends Repository { protected ddlBuilderType: typeof DataDefinitionBuilder; constructor(options: DDLRepositoryOptions); init(options: DDLRepositoryInit): void; getDDLBuilder(): DataDefinitionBuilder; /** * Temporarily disable foreign key checks on the session. * Some databases may require escalated priveleges */ disableForeignKeyChecks(): Promise<void>; /** * Re-enable foreign key checks on the session. * Some databases may require escalated priveleges */ enableForeignKeyChecks(): Promise<void>; /** * Create a new database * * @param options Database options */ createDatabase(options: CreateDatabaseOptions): Promise<void>; /** * Create a new table * * @param options Table options */ createTable(options: CreateTableOptions): Promise<void>; /** * Create an index on a table * * @param options Index options */ createIndex(options: CreateIndexOptions): Promise<void>; /** * Create a new user * * @param options Table options */ createUser(options: CreateUserOptions): Promise<void>; /** * IMPORTANT: UNSTABLE. Grant is currently only compatible with * mysql and mssql and may cause unintended side-effects and/or * privilege escalation. * This should not be used in most circumstances! * Use a dedicated database connection for this method, as it may change * the database connection's default database. * This method and it's arguments are likely to change in future versions * * @param options Grant options * @returns */ grant(options: GrantOptions): Promise<void>; /** * Add columns to a table * * @param options Add column options */ addColumns(options: AddColumnsOptions): Promise<void>; /** * Add a foreign key to a table * * @param options Foreign key options */ addForeignKey(options: AddForeignKeyOptions): Promise<void>; /** * Change a column * * @param options Column options */ changeColumn(options: ChangeColumnOptions): Promise<void>; /** * Drop a column * * @param options Drop options */ dropColumn(options: DropColumnOptions): Promise<void>; /** * Drop a foreign key constraint * * @param options Drop options */ dropForeignKey(options: DropForeignKeyOptions): Promise<void>; /** * Rename a table * * @param options Rename options */ renameTable(options: RenameTableOptions): Promise<void>; /** * Drop a database * * @param options Options */ dropDatabase(options: DropDatabaseOptions): Promise<void>; /** * Drop an existing table * * @param options Options */ dropTable(options: DropTableOptions): Promise<void>; /** * Drop user(s) * * @param options Options */ dropUser(options: DropUserOptions): Promise<void>; /** * Truncate an existing table * * @param options Options */ truncate(options: TruncateOptions): Promise<void>; /** * Create a new trigger * * @param options Trigger options */ createTrigger(options: TriggerOptions): Promise<void>; /** * Drop an existing trigger * * @param options Trigger options */ dropTrigger(options: DropTriggerOptions): Promise<void>; }