import { Client, Context } from "./pg"; import { ParsedSettings } from "./settings"; export interface Migration { /** * The filename without the message slug in it, used for storing to the database. */ filename: string; /** * A hash of the content of the migration. */ hash: string; /** * The hash of the previous migration, or null if there was no previous migration */ previousHash: string | null; /** * True if we should allow the hash to be invalid; false otherwise. */ allowInvalidHash: boolean; } export interface DbMigration extends Migration { date: Date; } export interface FileMigration extends Migration { /** * The actual filename on disk */ realFilename: string; /** * The content of the migration */ body: string; /** * The message the migration was committed with */ message: string | null; /** * The slugified message, stored as part of the file name */ messageSlug: string | null; /** * The full path to this migration on disk */ fullPath: string; /** * If there was a previous migration, that */ previous: FileMigration | null; } export declare const slowGeneratePlaceholderReplacement: (parsedSettings: ParsedSettings, { database }: Context) => (str: string) => string; export declare const generatePlaceholderReplacement: (parsedSettings: ParsedSettings, __1: Context) => (str: string) => string; export declare function compilePlaceholders(parsedSettings: ParsedSettings, content: string, shadow?: boolean): string; export declare function _migrateMigrationSchema(pgClient: Client, parsedSettings: ParsedSettings): Promise; export declare function parseMigrationText(fullPath: string, contents: string, /** * Should be set true for committed migrations - requires that there is a \n\n divide after the header */ strict?: boolean): { headers: { [key: string]: string | null; }; body: string; }; export declare function serializeHeader(key: string, value: string | null): string; export declare function serializeMigration(body: string, headers: { [key: string]: string | null | undefined; }): string; export declare const isMigrationFilename: (filename: string) => RegExpMatchArray | null; export declare function getLastMigration(pgClient: Client, parsedSettings: ParsedSettings): Promise; export declare function getAllMigrations(parsedSettings: ParsedSettings): Promise>; export declare function getMigrationsAfter(parsedSettings: ParsedSettings, previousMigration: Migration | null): Promise>; export declare function runStringMigration(pgClient: Client, parsedSettings: ParsedSettings, context: Context, rawBody: string, filename: string, committedMigration?: FileMigration, dryRun?: boolean): Promise<{ sql: string; transaction: boolean; }>; export declare function undoMigration(parsedSettings: ParsedSettings, committedMigration: FileMigration): Promise; export declare function runCommittedMigration(pgClient: Client, parsedSettings: ParsedSettings, context: Context, committedMigration: FileMigration, logSuffix: string): Promise; export declare function reverseMigration(pgClient: Client, _body: string): Promise;