public function export( $args, $assoc_args ) {
		if ( ! empty( $args[0] ) ) {
			$result_file = $args[0];
		} else {
			// phpcs:ignore WordPress.WP.AlternativeFunctions.rand_mt_rand -- WordPress is not loaded.
			$hash        = substr( md5( mt_rand() ), 0, 7 );
			$result_file = sprintf( '%s-%s-%s.sql', DB_NAME, date( 'Y-m-d' ), $hash );

		}
		$stdout    = ( '-' === $result_file );
		$porcelain = Utils\get_flag_value( $assoc_args, 'porcelain' );

		// Bail if both porcelain and STDOUT are set.
		if ( $stdout && $porcelain ) {
			WP_CLI::error( 'Porcelain is not allowed when output mode is STDOUT.' );
		}

		if ( ! $stdout ) {
			$assoc_args['result-file'] = $result_file;
		}

		$support_column_statistics = exec( 'mysqldump --help | grep "column-statistics"' );

		if ( $support_column_statistics ) {
			$command = '/usr/bin/env mysqldump --no-defaults --skip-column-statistics %s';
		} else {
			$command = '/usr/bin/env mysqldump --no-defaults %s';
		}

		$command_esc_args = array( DB_NAME );

		if ( isset( $assoc_args['tables'] ) ) {
			$tables = explode( ',', trim( $assoc_args['tables'], ',' ) );
			unset( $assoc_args['tables'] );
			$command .= ' --tables';
			foreach ( $tables as $table ) {
				$command           .= ' %s';
				$command_esc_args[] = trim( $table );
			}
		}

		$exclude_tables = Utils\get_flag_value( $assoc_args, 'exclude_tables' );
		if ( isset( $exclude_tables ) ) {
			$tables = explode( ',', trim( $assoc_args['exclude_tables'], ',' ) );
			unset( $assoc_args['exclude_tables'] );
			foreach ( $tables as $table ) {
				$command           .= ' --ignore-table';
				$command           .= ' %s';
				$command_esc_args[] = trim( DB_NAME . '.' . $table );
			}
		}

		$escaped_command = call_user_func_array( '\WP_CLI\Utils\esc_cmd', array_merge( array( $command ), $command_esc_args ) );

		// Remove parameters not needed for SQL run.
		unset( $assoc_args['porcelain'] );

		self::run( $escaped_command, $assoc_args );

		if ( $porcelain ) {
			WP_CLI::line( $result_file );
		} elseif ( ! $stdout ) {
			WP_CLI::success( sprintf( "Exported to '%s'.", $result_file ) );
		}
	}
public function export( $args, $assoc_args ) {
		if ( ! empty( $args[0] ) ) {
			$result_file = $args[0];
		} else {
			// phpcs:ignore WordPress.WP.AlternativeFunctions.rand_mt_rand -- WordPress is not loaded.
			$hash        = substr( md5( mt_rand() ), 0, 7 );
			$result_file = sprintf( '%s-%s-%s.sql', DB_NAME, date( 'Y-m-d' ), $hash );

		}
		$stdout    = ( '-' === $result_file );
		$porcelain = Utils\get_flag_value( $assoc_args, 'porcelain' );

		// Bail if both porcelain and STDOUT are set.
		if ( $stdout && $porcelain ) {
			WP_CLI::error( 'Porcelain is not allowed when output mode is STDOUT.' );
		}

		if ( ! $stdout ) {
			$assoc_args['result-file'] = $result_file;
		}

		$support_column_statistics = exec( 'mysqldump --help | grep "column-statistics"' );

		if ( $support_column_statistics ) {
			$command = '/usr/bin/env mysqldump --no-defaults --skip-column-statistics %s';
		} else {
			$command = '/usr/bin/env mysqldump --no-defaults %s';
		}

		$command_esc_args = array( DB_NAME );

		if ( isset( $assoc_args['tables'] ) ) {
			$tables = explode( ',', trim( $assoc_args['tables'], ',' ) );
			unset( $assoc_args['tables'] );
			$command .= ' --tables';
			foreach ( $tables as $table ) {
				$command           .= ' %s';
				$command_esc_args[] = trim( $table );
			}
		}

		$exclude_tables = Utils\get_flag_value( $assoc_args, 'exclude_tables' );
		if ( isset( $exclude_tables ) ) {
			$tables = explode( ',', trim( $assoc_args['exclude_tables'], ',' ) );
			unset( $assoc_args['exclude_tables'] );
			foreach ( $tables as $table ) {
				$command           .= ' --ignore-table';
				$command           .= ' %s';
				$command_esc_args[] = trim( DB_NAME . '.' . $table );
			}
		}

		$escaped_command = call_user_func_array( '\WP_CLI\Utils\esc_cmd', array_merge( array( $command ), $command_esc_args ) );

		// Remove parameters not needed for SQL run.
		unset( $assoc_args['porcelain'] );

		self::run( $escaped_command, $assoc_args );

		if ( $porcelain ) {
			WP_CLI::line( $result_file );
		} elseif ( ! $stdout ) {
			WP_CLI::success( sprintf( "Exported to '%s'.", $result_file ) );
		}
	}
public function export ( $ args , $ assoc_args ) { if ( ! empty ( $ args [ 0 ] ) ) { $ result_file = $ args [ 0 ] ; } else { // phpcs:ignore WordPress.WP.AlternativeFunctions.rand_mt_rand -- WordPress is not loaded. $ hash = substr ( md5 ( mt_rand ( ) ) , 0 , 7 ) ; $ result_file = sprintf ( '%s-%s-%s.sql' , DB_NAME , date ( 'Y-m-d' ) , $ hash ) ; } $ stdout = ( '-' === $ result_file ) ; $ porcelain = Utils \ get_flag_value ( $ assoc_args , 'porcelain' ) ; // Bail if both porcelain and STDOUT are set. if ( $ stdout && $ porcelain ) { WP_CLI :: error ( 'Porcelain is not allowed when output mode is STDOUT.' ) ; } if ( ! $ stdout ) { $ assoc_args [ 'result-file' ] = $ result_file ; } $ support_column_statistics = exec ( 'mysqldump --help | grep "column-statistics"' ) ; if ( $ support_column_statistics ) { $ command = '/usr/bin/env mysqldump --no-defaults --skip-column-statistics %s' ; } else { $ command = '/usr/bin/env mysqldump --no-defaults %s' ; } $ command_esc_args = array ( DB_NAME ) ; if ( isset ( $ assoc_args [ 'tables' ] ) ) { $ tables = explode ( ',' , trim ( $ assoc_args [ 'tables' ] , ',' ) ) ; unset ( $ assoc_args [ 'tables' ] ) ; $ command .= ' --tables' ; foreach ( $ tables as $ table ) { $ command .= ' %s' ; $ command_esc_args [ ] = trim ( $ table ) ; } } $ exclude_tables = Utils \ get_flag_value ( $ assoc_args , 'exclude_tables' ) ; if ( isset ( $ exclude_tables ) ) { $ tables = explode ( ',' , trim ( $ assoc_args [ 'exclude_tables' ] , ',' ) ) ; unset ( $ assoc_args [ 'exclude_tables' ] ) ; foreach ( $ tables as $ table ) { $ command .= ' --ignore-table' ; $ command .= ' %s' ; $ command_esc_args [ ] = trim ( DB_NAME . '.' . $ table ) ; } } $ escaped_command = call_user_func_array ( '\WP_CLI\Utils\esc_cmd' , array_merge ( array ( $ command ) , $ command_esc_args ) ) ; // Remove parameters not needed for SQL run. unset ( $ assoc_args [ 'porcelain' ] ) ; self :: run ( $ escaped_command , $ assoc_args ) ; if ( $ porcelain ) { WP_CLI :: line ( $ result_file ) ; } elseif ( ! $ stdout ) { WP_CLI :: success ( sprintf ( "Exported to '%s'." , $ result_file ) ) ; } }
Exports the database to a file or to STDOUT.

Runs `mysqldump` utility using `DB_HOST`, `DB_NAME`, `DB_USER` and
`DB_PASSWORD` database credentials specified in wp-config.php.

## OPTIONS

[<file>]
: The name of the SQL file to export. If '-', then outputs to STDOUT. If
omitted, it will be '{dbname}-{Y-m-d}-{random-hash}.sql'.

[--dbuser=<value>]
: Username to pass to mysqldump. Defaults to DB_USER.

[--dbpass=<value>]
: Password to pass to mysqldump. Defaults to DB_PASSWORD.

[--<field>=<value>]
: Extra arguments to pass to mysqldump. [Refer to mysqldump docs](https://dev.mysql.com/doc/en/mysqldump.html#mysqldump-option-summary).

[--tables=<tables>]
: The comma separated list of specific tables to export. Excluding this parameter will export all tables in the database.

[--exclude_tables=<tables>]
: The comma separated list of specific tables that should be skipped from exporting. Excluding this parameter will export all tables in the database.

[--porcelain]
: Output filename for the exported database.

## EXAMPLES

# Export database with drop query included
$ wp db export --add-drop-table
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Export certain tables
$ wp db export --tables=wp_options,wp_users
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Export all tables matching a wildcard
$ wp db export --tables=$(wp db tables 'wp_user*' --format=csv)
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Export all tables matching prefix
$ wp db export --tables=$(wp db tables --all-tables-with-prefix --format=csv)
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Export certain posts without create table statements
$ wp db export --no-create-info=true --tables=wp_posts --where="ID in (100,101,102)"
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Export relating meta for certain posts without create table statements
$ wp db export --no-create-info=true --tables=wp_postmeta --where="post_id in (100,101,102)"
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Skip certain tables from the exported database
$ wp db export --exclude_tables=wp_options,wp_users
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Skip all tables matching a wildcard from the exported database
$ wp db export --exclude_tables=$(wp db tables 'wp_user*' --format=csv)
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Skip all tables matching prefix from the exported database
$ wp db export --exclude_tables=$(wp db tables --all-tables-with-prefix --format=csv)
Success: Exported to 'wordpress_dbase-db72bb5.sql'.

# Export database to STDOUT.
$ wp db export -
-- MySQL dump 10.13  Distrib 5.7.19, for osx10.12 (x86_64)
--
-- Host: localhost    Database: wpdev
-- ------------------------------------------------------
-- Server version    5.7.19
...

@alias dump
Exports the database to a file or to STDOUT .