@riao/dbal
Version:
97 lines (96 loc) • 4.65 kB
TypeScript
import { StatementBuilder } from '../builder/statement-builder';
import { ColumnOptions, ColumnType } from '../column';
import { AddColumnsOptions, AddForeignKeyOptions, ChangeColumnOptions, DropColumnOptions, DropForeignKeyOptions, RenameTableOptions } from './alter-table';
import { CreateDatabaseOptions } from './create-database';
import { CreateTableOptions } from './create-table';
import { CreateUserOptions } from './create-user';
import { DropDatabaseOptions } from './drop-database';
import { DropTableOptions } from './drop-table';
import { DropUserOptions } from './drop-user';
import { ForeignKeyConstraint, ForeignKeyReferenceOption } from './foreign-key-constraint';
import { GrantOn, GrantOptions } from './grant';
import { TruncateOptions } from './truncate';
import { DatabaseQueryBuilder } from '../dml';
import { CreateIndexOptions } from './create-index';
import { DropTriggerOptions, TriggerBody, TriggerOptions } from '../triggers';
export declare class DataDefinitionBuilder extends StatementBuilder {
protected columnTypes: typeof ColumnType;
protected queryBuilderType: typeof DatabaseQueryBuilder;
getQueryBuilder(): DatabaseQueryBuilder;
getColumnTypes(): typeof ColumnType;
createDatabaseStatement(): this;
createDatabase(options: CreateDatabaseOptions): this;
createUserStatement(): this;
createUserPassword(password: string): this;
createUser(options: CreateUserOptions): this;
createTableStatement(): this;
ifNotExists(): this;
createColumnType(column: ColumnOptions): this;
columnRequired(): this;
columnDefaultValue(column: ColumnOptions): this;
columnDefaultNull(): this;
columnDefaultTrue(): this;
columnDefaultFalse(): this;
columnAutoIncrement(): this;
createTableColumn(column: ColumnOptions): this;
createTablePrimaryKeys(names: string[]): this;
createTableColumns(options: CreateTableOptions): this;
createTable(options: CreateTableOptions): this;
constraintStatement(): this;
createTableTriggers(options: CreateTableOptions): this;
createIndex(options: CreateIndexOptions): this;
grantOnDatabase(database: string): this;
grantOn(on: GrantOn): this;
/**
* 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): this;
foreignKeyStatement(): this;
foreignKeyName(childTable: string, fk: ForeignKeyConstraint): this;
foreignKeyColumns(columns: string[]): this;
referencesStatement(table: string, columns: string[]): this;
fkOnUpdate(option: ForeignKeyReferenceOption): this;
fkOnDelete(option: ForeignKeyReferenceOption): this;
foreignKeyConstraint(childTable: string, fk: ForeignKeyConstraint): void;
disableForeignKeyChecks(): this;
enableForeignKeyChecks(): this;
uniqueConstraint(table: string, column: string): this;
alterTableStatement(table: string): this;
addColumns(options: AddColumnsOptions): this;
addForeignKey(options: AddForeignKeyOptions): this;
alterColumnStatement(column: string): this;
changeColumn(options: ChangeColumnOptions): this;
dropColumn(options: DropColumnOptions): this;
dropForeignKey(options: DropForeignKeyOptions): this;
renameTable(options: RenameTableOptions): this;
dropDatabase(options: DropDatabaseOptions): this;
dropTable(options: DropTableOptions): this;
dropUser(options: DropUserOptions): this;
truncate(options: TruncateOptions): this;
createTrigger(options: TriggerOptions): this;
createTriggerStatement(): this;
getTriggerName(options: TriggerOptions): string;
createTriggerTableEvent(options: TriggerOptions): this;
createTriggerTable(table: string): this;
createTriggerEvent(options: TriggerOptions): this;
createTriggerBody(sql: TriggerBody): this;
createTriggerBeginStatement(): this;
createTriggerEndStatement(): this;
createTriggerForEachRow(): this;
dropTrigger(options: DropTriggerOptions): this;
dropTriggerStatement(): this;
ifExists(): this;
dropTriggerName(options: {
name: string;
table: string;
}): this;
}