UNPKG

2.61 kBTypeScriptView Raw
1/// <reference types="node" />
2/// <reference types="@adonisjs/application/build/adonis-typings" />
3declare module '@ioc:Adonis/Lucid/Migrator' {
4 import { EventEmitter } from 'events';
5 import { ApplicationContract } from '@ioc:Adonis/Core/Application';
6 import { FileNode, DatabaseContract } from '@ioc:Adonis/Lucid/Database';
7 /**
8 * Options accepted by migrator constructor
9 */
10 export type MigratorOptions = {
11 direction: 'up';
12 connectionName?: string;
13 dryRun?: boolean;
14 } | {
15 direction: 'down';
16 batch?: number;
17 connectionName?: string;
18 dryRun?: boolean;
19 };
20 /**
21 * Shape of migrated file within migrator
22 */
23 export type MigratedFileNode = {
24 status: 'completed' | 'error' | 'pending';
25 queries: string[];
26 file: FileNode<unknown>;
27 batch: number;
28 };
29 /**
30 * Shape of migrated file within migrator
31 */
32 export type MigrationListNode = {
33 name: string;
34 status: 'pending' | 'migrated' | 'corrupt';
35 batch?: number;
36 migrationTime?: Date;
37 };
38 /**
39 * Shape of the migrator
40 */
41 export interface MigratorContract extends EventEmitter {
42 dryRun: boolean;
43 version: number;
44 direction: 'up' | 'down';
45 status: 'completed' | 'skipped' | 'pending' | 'error';
46 error: null | Error;
47 migratedFiles: {
48 [file: string]: MigratedFileNode;
49 };
50 run(): Promise<void>;
51 getList(): Promise<MigrationListNode[]>;
52 close(): Promise<void>;
53 on(event: 'start', callback: () => void): this;
54 on(event: 'end', callback: () => void): this;
55 on(event: 'acquire:lock', callback: () => void): this;
56 on(event: 'release:lock', callback: () => void): this;
57 on(event: 'create:schema:table', callback: () => void): this;
58 on(event: 'create:schema_versions:table', callback: () => void): this;
59 on(event: 'upgrade:version', callback: (payload: {
60 from: number;
61 to: number;
62 }) => void): this;
63 on(event: 'migration:start', callback: (file: MigratedFileNode) => void): this;
64 on(event: 'migration:completed', callback: (file: MigratedFileNode) => void): this;
65 on(event: 'migration:error', callback: (file: MigratedFileNode) => void): this;
66 }
67 /**
68 * Migrator class constructor
69 */
70 const Migrator: {
71 new (db: DatabaseContract, app: ApplicationContract, options: MigratorOptions): MigratorContract;
72 };
73 export default Migrator;
74}