@riao/dbal
Version:
136 lines (135 loc) • 4.39 kB
TypeScript
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>;
}