function backup_migrate_update_2005 in Backup and Migrate 8.3
Same name and namespace in other branches
- 8.2 backup_migrate.install \backup_migrate_update_2005()
- 6.3 backup_migrate.install \backup_migrate_update_2005()
- 6.2 backup_migrate.install \backup_migrate_update_2005()
- 7.3 backup_migrate.install \backup_migrate_update_2005()
- 7.2 backup_migrate.install \backup_migrate_update_2005()
Change the default database id to something friendlier 2009-08-08
File
- ./
backup_migrate.install, line 413 - Install hooks for Backup and Migrate.
Code
function backup_migrate_update_2005() {
require_once './' . drupal_get_path('module', 'backup_migrate') . '/includes/crud.inc';
require_once './' . drupal_get_path('module', 'backup_migrate') . '/includes/profiles.inc';
$ret = array();
// Change the destination ids of the defined database sources mostly to make using them with drush friendlier.
// Change the db_url:default id to simply 'db'
$ret[] = db_query("UPDATE {backup_migrate_profiles} SET source_id = 'db' WHERE source_id = 'db_url:default'");
$ret[] = db_query("UPDATE {backup_migrate_schedules} SET destination_id = 'db' WHERE destination_id = 'db_url:default'");
// Change the defined db keys from db_url:key to db:key.
$ret[] = db_query("UPDATE {backup_migrate_profiles} SET source_id = REPLACE(source_id, 'db_url:', 'db:')");
$ret[] = db_query("UPDATE {backup_migrate_schedules} SET destination_id = REPLACE(destination_id, 'db_url:', 'db:')");
// Add the source field to the schedule
if (!db_field_exists('backup_migrate_schedules', 'source_id')) {
db_add_field('backup_migrate_schedules', 'source_id', array(
'description' => t('The db source to backup from.'),
'type' => 'varchar',
'length' => 255,
'default' => 'db',
'not null' => TRUE,
));
}
// Copy source data from profiles to schedules.
$result = db_query('SELECT p.source_id, s.schedule_id FROM {backup_migrate_schedules} s LEFT JOIN {backup_migrate_profiles} p ON s.profile_id = p.profile_id', array(), array(
'fetch' => PDO::FETCH_ASSOC,
));
foreach ($result as $schedule) {
if (!$schedule['source_id']) {
$schedule['source_id'] = 'db';
}
$ret[] = db_query("UPDATE {backup_migrate_schedules} SET source_id = '" . $schedule['source_id'] . "' WHERE schedule_id = '" . $schedule['profile_id'] . "'");
}
if (db_field_exists('backup_migrate_profiles', 'source_id')) {
db_drop_field('backup_migrate_profiles', 'source_id');
}
// Copy the no-data and exclude tables settings into the 'filter' field.
$result = db_query('SELECT * FROM {backup_migrate_profiles}', array(), array(
'fetch' => PDO::FETCH_ASSOC,
));
foreach ($result as $item) {
if (isset($item['nodata_tables']) && isset($item['exclude_tables'])) {
$profile = backup_migrate_get_profile($item['profile_id']);
$profile->filters['nodata_tables'] = unserialize($item['nodata_tables']);
$profile->filters['exclude_tables'] = unserialize($item['exclude_tables']);
$profile
->save();
}
}
if (db_field_exists('backup_migrate_profiles', 'nodata_tables')) {
db_drop_field('backup_migrate_profiles', 'nodata_tables');
}
if (db_field_exists('backup_migrate_profiles', 'exclude_tables')) {
db_drop_field('backup_migrate_profiles', 'exclude_tables');
}
return $ret;
}