From fe4f4a2309998518d3508f78d2894f364275c382 Mon Sep 17 00:00:00 2001 From: Brad Zacher Date: Wed, 24 Jul 2019 08:43:22 -0700 Subject: [PATCH] 3.1.0 --- README.md | 554 ++++++++++++++++++++++++-------------------- dist/mysqldump.d.ts | 5 + package.json | 2 +- 3 files changed, 306 insertions(+), 255 deletions(-) diff --git a/README.md b/README.md index cf52e20..1c68117 100644 --- a/README.md +++ b/README.md @@ -93,276 +93,322 @@ All the below options are documented in the [typescript declaration file](./dist ```TS export interface ConnectionOptions { - /** - * The database host to connect to. - * Defaults to 'localhost'. - */ - host?: string; - /** - * The port on the host to connect to. - * Defaults to 3306. - */ - port?: number; - /** - * The database to dump. - */ - database: string; - /** - * The DB username to use to connect. - */ - user: string; - /** - * The password to use to connect. - */ - password: string; - /** - * The charset to use for the connection. - * Defaults to 'UTF8_GENERAL_CI'. - */ - charset?: string; + /** + * The database host to connect to. + * Defaults to 'localhost'. + */ + host?: string; + /** + * The port on the host to connect to. + * Defaults to 3306. + */ + port?: number; + /** + * The database to dump. + */ + database: string; + /** + * The DB username to use to connect. + */ + user: string; + /** + * The password to use to connect. + */ + password: string; + /** + * The charset to use for the connection. + * Defaults to 'UTF8_GENERAL_CI'. + */ + charset?: string; + /** + * SSL configuration options. + * Passing 'Amazon RDS' will use Amazon's RDS CA certificate. + * + * Otherwise you can pass the options which get passed to tls.createSecureContext. + * See: https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options + */ + ssl?: 'Amazon RDS' | null | { + /** + * Optionally override the trusted CA certificates. Default is to trust the well-known CAs curated by Mozilla. + */ + ca?: string | Buffer; + /** + * Optional cert chains in PEM format. + */ + cert?: string | Buffer; + /** + * Optional cipher suite specification, replacing the default. + */ + ciphers?: string; + /** + * Optional PEM formatted CRLs (Certificate Revocation Lists). + */ + crl?: string | Array; + /** + * Attempt to use the server's cipher suite preferences instead of the client's. + */ + honorCipherOrder?: boolean; + /** + * Optional private keys in PEM format. + */ + key?: string | Buffer; + /** + * Optional shared passphrase used for a single private key and/or a PFX. + */ + passphrase?: string; + /** + * Optional PFX or PKCS12 encoded private key and certificate chain. + */ + pfx?: string | Buffer; + /** + * DO NOT USE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!! + * Set to false to allow connection to a MySQL server without properly providing the appropraite CA to trust. + */ + rejectUnauthorized?: boolean; + }; } export interface SchemaDumpOptions { - /** - * True to include autoincrement values in schema, false otherwise. - * Defaults to true. - */ - autoIncrement?: boolean; - /** - * True to include engine values in schema, false otherwise. - * Defaults to true. - */ - engine?: boolean; - /** - * True to run a sql formatter over the output, false otherwise. - * Defaults to true. - */ - format?: boolean; - /** - * Options for table dumps - */ - table?: { - /** - * Guard create table calls with an "IF NOT EXIST" - * Defaults to true. - */ - ifNotExist?: boolean; - /** - * Drop tables before creation (overrides `ifNotExist`). - * Defaults to false. - */ - dropIfExist?: boolean; - /** - * Include the `DEFAULT CHARSET = x` at the end of the table definition - * Set to true to include the value form the DB. - * Set to false to exclude it altogether. - * Set to a string to explicitly set the charset. - * Defaults to true. - */ - charset?: boolean | string; - }; - view?: { - /** - * Uses `CREATE OR REPLACE` to define views. - * Defaults to true. - */ - createOrReplace?: boolean; - /** - * Include the `DEFINER = {\`user\`@\`host\` | CURRENT_USER}` in the view definition or not - * Defaults to false. - */ - definer?: boolean; - /** - * Include the `ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}` in the view definition or not - * Defaults to false. - */ - algorithm?: boolean; - /** - * Incldue the `SQL SECURITY {DEFINER | INVOKER}` in the view definition or not - * Defaults to false. - */ - sqlSecurity?: boolean; - }; + /** + * True to include autoincrement values in schema, false otherwise. + * Defaults to true. + */ + autoIncrement?: boolean; + /** + * True to include engine values in schema, false otherwise. + * Defaults to true. + */ + engine?: boolean; + /** + * True to run a sql formatter over the output, false otherwise. + * Defaults to true. + */ + format?: boolean; + /** + * Options for table dumps + */ + table?: { + /** + * Guard create table calls with an "IF NOT EXIST" + * Defaults to true. + */ + ifNotExist?: boolean; + /** + * Drop tables before creation (overrides `ifNotExist`). + * Defaults to false. + */ + dropIfExist?: boolean; + /** + * Include the `DEFAULT CHARSET = x` at the end of the table definition + * Set to true to include the value form the DB. + * Set to false to exclude it altogether. + * Set to a string to explicitly set the charset. + * Defaults to true. + */ + charset?: boolean | string; + }; + view?: { + /** + * Uses `CREATE OR REPLACE` to define views. + * Defaults to true. + */ + createOrReplace?: boolean; + /** + * Include the `DEFINER = {\`user\`@\`host\` | CURRENT_USER}` in the view definition or not + * Defaults to false. + */ + definer?: boolean; + /** + * Include the `ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}` in the view definition or not + * Defaults to false. + */ + algorithm?: boolean; + /** + * Incldue the `SQL SECURITY {DEFINER | INVOKER}` in the view definition or not + * Defaults to false. + */ + sqlSecurity?: boolean; + }; } export interface TriggerDumpOptions { - /** - * The temporary delimiter to use between statements. - * Set to false to not use delmiters - * Defaults to ';;'. - */ - delimiter?: string | false; - /** - * Drop triggers before creation. - * Defaults to false. - */ - dropIfExist?: boolean; - /** - * Include the `DEFINER = {\`user\`@\`host\` | CURRENT_USER}` in the view definition or not - * Defaults to false. - */ - definer?: boolean; + /** + * The temporary delimiter to use between statements. + * Set to false to not use delmiters + * Defaults to ';;'. + */ + delimiter?: string | false; + /** + * Drop triggers before creation. + * Defaults to false. + */ + dropIfExist?: boolean; + /** + * Include the `DEFINER = {\`user\`@\`host\` | CURRENT_USER}` in the view definition or not + * Defaults to false. + */ + definer?: boolean; } export interface DataDumpOptions { - /** - * True to run a sql formatter over the output, false otherwise. - * Defaults to true. - */ - format?: boolean; - /** - * Include file headers in output - * Defaults to true. - */ - verbose ?: boolean - /** - * Use a read lock during the data dump (see: https://dev.mysql.com/doc/refman/5.7/en/replication-solutions-backups-read-only.html) - * Defaults to false. - */ - lockTables ?: boolean - /** - * Dump data from views. - * Defaults to false. - */ - includeViewData?: boolean; - /** - * Maximum number of rows to include in each multi-line insert statement - * Defaults to 1 (i.e. new statement per row). - */ - maxRowsPerInsertStatement?: number; - /** - * True to return the data in a function, false to not. - * This is useful in databases with a lot of data. - * - * We stream data from the DB to reduce the memory footprint. - * However note that if you want the result returned from the function, - * this will result in a larger memory footprint as the string has to be stored in memory. - * - * Defaults to false if dumpToFile is truthy, or true if not dumpToFile is falsey. - */ - returnFromFunction?: boolean; - /** - * A map of tables to additional where strings to add. - * Use this to limit the number of data that is dumped. - * Defaults to no limits - */ - where?: { - [k: string]: string; - }; + /** + * True to run a sql formatter over the output, false otherwise. + * Defaults to true. + */ + format?: boolean; + /** + * Include file headers in output + * Defaults to true. + */ + verbose?: boolean; + /** + * Use a read lock during the data dump (see: https://dev.mysql.com/doc/refman/5.7/en/replication-solutions-backups-read-only.html) + * Defaults to false. + */ + lockTables?: boolean; + /** + * Dump data from views. + * Defaults to false. + */ + includeViewData?: boolean; + /** + * Maximum number of rows to include in each multi-line insert statement + * Defaults to 1 (i.e. new statement per row). + */ + maxRowsPerInsertStatement?: number; + /** + * True to return the data in a function, false to not. + * This is useful in databases with a lot of data. + * + * We stream data from the DB to reduce the memory footprint. + * However note that if you want the result returned from the function, + * this will result in a larger memory footprint as the string has to be stored in memory. + * + * Defaults to false if dumpToFile is truthy, or true if not dumpToFile is falsey. + */ + returnFromFunction?: boolean; + /** + * A map of tables to additional where strings to add. + * Use this to limit the number of data that is dumped. + * Defaults to no limits + */ + where?: { + [k: string]: string; + }; } export interface DumpOptions { - /** - * The list of tables that you want to dump. - * Defaults to all tables (signalled by passing an empty array). - */ - tables?: string[]; - /** - * True to use the `tables` options as a blacklist, false to use it as a whitelist. - * Defaults to false. - */ - excludeTables?: boolean; - /** - * Explicitly set to false to not include the schema in the dump. - * Defaults to including the schema. - */ - schema?: false | SchemaDumpOptions; - /** - * Explicitly set to false to not include data in the dump. - * Defaults to including the data. - */ - data?: false | DataDumpOptions; - /** - * Explicitly set to false to not include triggers in the dump. - * Defaults to including the triggers. - */ - trigger?: false | TriggerDumpOptions; + /** + * The list of tables that you want to dump. + * Defaults to all tables (signalled by passing an empty array). + */ + tables?: Array; + /** + * True to use the `tables` options as a blacklist, false to use it as a whitelist. + * Defaults to false. + */ + excludeTables?: boolean; + /** + * Explicitly set to false to not include the schema in the dump. + * Defaults to including the schema. + */ + schema?: false | SchemaDumpOptions; + /** + * Explicitly set to false to not include data in the dump. + * Defaults to including the data. + */ + data?: false | DataDumpOptions; + /** + * Explicitly set to false to not include triggers in the dump. + * Defaults to including the triggers. + */ + trigger?: false | TriggerDumpOptions; } export interface Options { - /** - * Database connection options - */ - connection: ConnectionOptions; - /** - * Dump configuration options - */ - dump?: DumpOptions; - /** - * Set to a path to dump to a file. - * Exclude to just return the string. - */ - dumpToFile?: string; - /** - * Should the output file be compressed (gzip)? - * Defaults to false. - */ - compressFile?: boolean; + /** + * Database connection options + */ + connection: ConnectionOptions; + /** + * Dump configuration options + */ + dump?: DumpOptions; + /** + * Set to a path to dump to a file. + * Exclude to just return the string. + */ + dumpToFile?: string | null; + /** + * Should the output file be compressed (gzip)? + * Defaults to false. + */ + compressFile?: boolean; } export interface ColumnList { - /** - * Key is the name of the column - */ - [k: string]: { - /** - * The type of the column as reported by the underlying DB. - */ - type: string; - /** - * True if the column is nullable, false otherwise. - */ - nullable: boolean; - }; + /** + * Key is the name of the column + */ + [k: string]: { + /** + * The type of the column as reported by the underlying DB. + */ + type: string; + /** + * True if the column is nullable, false otherwise. + */ + nullable: boolean; + }; } export interface Table { - /** - * The name of the table. - */ - name: string; - /** - * The raw SQL schema dump for the table. - * Null if configured to not dump. - */ - schema: string | null; - /** - * The raw SQL data dump for the table. - * Null if configured to not dump. - */ - data: string | null; - /** - * The list of column definitions for the table. - */ - columns: ColumnList; - /** - * An ordered list of columns (for consistently outputing as per the DB definition) - */ - columnsOrdered: string[]; - /** - * True if the table is actually a view, false otherwise. - */ - isView: boolean; - /** - * A list of triggers attached to the table - */ - triggers: string[]; + /** + * The name of the table. + */ + name: string; + /** + * The raw SQL schema dump for the table. + * Null if configured to not dump. + */ + schema: string | null; + /** + * The raw SQL data dump for the table. + * Null if configured to not dump. + */ + data: string | null; + /** + * The list of column definitions for the table. + */ + columns: ColumnList; + /** + * An ordered list of columns (for consistently outputing as per the DB definition) + */ + columnsOrdered: Array; + /** + * True if the table is actually a view, false otherwise. + */ + isView: boolean; + /** + * A list of triggers attached to the table + */ + triggers: Array; } export interface DumpReturn { - /** - * The result of the dump - */ - dump: { - /** - * The concatenated SQL schema dump for the entire database. - * Null if configured not to dump. - */ - schema: string | null; - /** - * The concatenated SQL data dump for the entire database. - * Null if configured not to dump. - */ - data: string | null; - /** - * The concatenated SQL trigger dump for the entire database. - * Null if configured not to dump. - */ - trigger: string | null; - }; - tables: Table[]; + /** + * The result of the dump + */ + dump: { + /** + * The concatenated SQL schema dump for the entire database. + * Null if configured not to dump. + */ + schema: string | null; + /** + * The concatenated SQL data dump for the entire database. + * Null if configured not to dump. + */ + data: string | null; + /** + * The concatenated SQL trigger dump for the entire database. + * Null if configured not to dump. + */ + trigger: string | null; + }; + tables: Array; } export default function main(inputOptions: Options): Promise; diff --git a/dist/mysqldump.d.ts b/dist/mysqldump.d.ts index 758cda1..bcfe42a 100644 --- a/dist/mysqldump.d.ts +++ b/dist/mysqldump.d.ts @@ -242,6 +242,11 @@ export interface Options { * Exclude to just return the string. */ dumpToFile?: string | null; + /** + * Should the output file be compressed (gzip)? + * Defaults to false. + */ + compressFile?: boolean; } export interface ColumnList { /** diff --git a/package.json b/package.json index 0ed5cdf..c574de3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mysqldump", - "version": "3.0.0", + "version": "3.1.0", "description": "Create a DUMP from MySQL", "main": "dist/cjs.js", "module": "dist/es.js",