node-pg-migrate-custom
Version:
Postgresql database migration management tool for node.js
113 lines (112 loc) • 4.4 kB
TypeScript
import { Name, Value, IfNotExistsOption, DropOptions } from './generalTypes';
import { SequenceOptions } from './sequencesTypes';
export declare type Action = 'NO ACTION' | 'RESTRICT' | 'CASCADE' | 'SET NULL' | 'SET DEFAULT';
export interface ReferencesOptions {
referencesConstraintName?: string;
referencesConstraintComment?: string;
references: Name;
onDelete?: Action;
onUpdate?: Action;
match?: 'FULL' | 'SIMPLE';
}
declare type SequenceGeneratedOptions = {
precedence: 'ALWAYS' | 'BY DEFAULT';
} & SequenceOptions;
export interface ColumnDefinition extends Partial<ReferencesOptions> {
type: string;
collation?: string;
unique?: boolean;
primaryKey?: boolean;
notNull?: boolean;
default?: Value;
check?: string;
deferrable?: boolean;
deferred?: boolean;
comment?: string | null;
/**
* @deprecated use sequenceGenerated
*/
generated?: SequenceGeneratedOptions;
sequenceGenerated?: SequenceGeneratedOptions;
expressionGenerated?: string;
}
export interface ColumnDefinitions {
[name: string]: ColumnDefinition | string;
}
export declare type Like = 'COMMENTS' | 'CONSTRAINTS' | 'DEFAULTS' | 'IDENTITY' | 'INDEXES' | 'STATISTICS' | 'STORAGE' | 'ALL';
export interface LikeOptions {
including?: Like | Like[];
excluding?: Like | Like[];
}
export interface ForeignKeyOptions extends ReferencesOptions {
columns: Name | Name[];
}
export interface ConstraintOptions {
check?: string | string[];
unique?: Name | Array<Name | Name[]>;
primaryKey?: Name | Name[];
foreignKeys?: ForeignKeyOptions | ForeignKeyOptions[];
exclude?: string;
deferrable?: boolean;
deferred?: boolean;
comment?: string;
}
export interface TableOptions extends IfNotExistsOption {
temporary?: boolean;
inherits?: Name;
like?: Name | {
table: Name;
options?: LikeOptions;
};
constraints?: ConstraintOptions;
comment?: string | null;
}
export interface AlterTableOptions {
levelSecurity: 'DISABLE' | 'ENABLE' | 'FORCE' | 'NO FORCE';
}
export interface AlterColumnOptions {
type?: string;
default?: Value;
notNull?: boolean;
allowNull?: boolean;
collation?: string;
using?: string;
comment?: string | null;
/**
* @deprecated use sequenceGenerated
*/
generated?: null | false | SequenceGeneratedOptions;
sequenceGenerated?: null | false | SequenceGeneratedOptions;
}
declare type CreateTableFn = (tableName: Name, columns: ColumnDefinitions, options?: TableOptions & DropOptions) => string | string[];
export declare type CreateTable = CreateTableFn & {
reverse: CreateTableFn;
};
export declare type DropTable = (tableName: Name, dropOptions?: DropOptions) => string | string[];
declare type RenameTableFn = (tableName: Name, newtableName: Name) => string | string[];
export declare type RenameTable = RenameTableFn & {
reverse: RenameTableFn;
};
export declare type AlterTable = (tableName: Name, alterOptions: AlterTableOptions) => string | string[];
declare type AddColumnsFn = (tableName: Name, newColumns: ColumnDefinitions, addOptions?: IfNotExistsOption & DropOptions) => string | string[];
export declare type AddColumns = AddColumnsFn & {
reverse: AddColumnsFn;
};
export declare type DropColumns = (tableName: Name, columns: string | string[] | {
[name: string]: unknown;
}, dropOptions?: DropOptions) => string | string[];
declare type RenameColumnFn = (tableName: Name, oldColumnName: string, newColumnName: string) => string | string[];
export declare type RenameColumn = RenameColumnFn & {
reverse: RenameColumnFn;
};
export declare type AlterColumn = (tableName: Name, columnName: string, options: AlterColumnOptions) => string | string[];
declare type CreateConstraintFn = (tableName: Name, constraintName: string | null, expression: (string | ConstraintOptions) & DropOptions) => string | string[];
export declare type CreateConstraint = CreateConstraintFn & {
reverse: CreateConstraintFn;
};
export declare type DropConstraint = (tableName: Name, constraintName: string, options?: DropOptions) => string | string[];
declare type RenameConstraintFn = (tableName: Name, oldConstraintName: string, newConstraintName: string) => string | string[];
export declare type RenameConstraint = RenameConstraintFn & {
reverse: RenameConstraintFn;
};
export {};