function backup_migrate_destination_db_mysql::_backup_db_to_file in Backup and Migrate 8.2
Same name and namespace in other branches
- 8.3 includes/destinations.db.mysql.inc \backup_migrate_destination_db_mysql::_backup_db_to_file()
- 6.2 includes/destinations.db.mysql.inc \backup_migrate_destination_db_mysql::_backup_db_to_file()
- 7.3 includes/destinations.db.mysql.inc \backup_migrate_destination_db_mysql::_backup_db_to_file()
- 7.2 includes/destinations.db.mysql.inc \backup_migrate_destination_db_mysql::_backup_db_to_file()
Backup the databases to a file.
Returns a list of sql commands, one command per line. That makes it easier to import without loading the whole file into memory. The files are a little harder to read, but human-readability is not a priority
Overrides backup_migrate_destination_db::_backup_db_to_file
File
- includes/
destinations.db.mysql.inc, line 105 - Functions to handle the direct to database destination.
Class
- backup_migrate_destination_db_mysql
- A destination type for saving to a database server.
Code
function _backup_db_to_file($file, $settings) {
if (!empty($settings->filters['use_mysqldump']) && $this
->_backup_db_to_file_mysqldump($file, $settings)) {
return TRUE;
}
$lines = 0;
$exclude = !empty($settings->filters['exclude_tables']) ? $settings->filters['exclude_tables'] : array();
$nodata = !empty($settings->filters['nodata_tables']) ? $settings->filters['nodata_tables'] : array();
if ($file
->open(TRUE)) {
$file
->write($this
->_get_sql_file_header());
$alltables = $this
->_get_tables();
foreach ($alltables as $table) {
if (_backup_migrate_check_timeout()) {
return FALSE;
}
if ($table['name'] && !isset($exclude[$table['name']])) {
$file
->write($this
->_get_table_structure_sql($table));
$lines++;
if (!in_array($table['name'], $nodata)) {
$lines += $this
->_dump_table_data_sql_to_file($file, $table);
}
}
}
$file
->write($this
->_get_sql_file_footer());
$file
->close();
return $lines;
}
else {
return FALSE;
}
}