Skip to content
Snippets Groups Projects
Commit 2658f7c6 authored by Tim Steiner's avatar Tim Steiner
Browse files

Added a script to migrate database prefixes.

parent a28ab4fb
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/php
<?php
require_once(dirname(__FILE__) . '/config.php');
$pdo = getPdo();
require_once DRUPAL_ROOT . '/sites/all/modules/unl/includes/common.php';
$siteTablesQuery = $pdo->prepare('SHOW TABLES LIKE ?');
foreach ($pdo->query('SELECT * FROM ' . DB_PREFIX . 'unl_sites') as $site) {
//print_r($site);
$settingsFile = DRUPAL_ROOT . '/sites/' . unl_get_sites_subdir($site['uri']) . '/settings.php';
if (!file_exists($settingsFile)) {
echo 'Could not find settings.php file for ' . $site['uri'] . ' skipping it!' . PHP_EOL;
continue;
}
$oldPrefix = $site['db_prefix'] . '_' . DB_PREFIX;
$newPrefix = 's' . $site['site_id'] . '_';
$siteTablesQuery->execute(array($oldPrefix . '%'));
foreach ($siteTablesQuery->fetchAll() as $tableRow) {
$oldTableName = $tableRow[0];
$newTableName = $newPrefix . substr($tableRow[0], strlen($oldPrefix));
$pdo->exec('RENAME TABLE `' . $oldTableName . '` TO `' . $newTableName);
}
shell_exec('chmod u+w ' . escapeshellarg(dirname($settingsFile)));
shell_exec('chmod u+w ' . escapeshellarg($settingsFile));
$command = 'sed -i -e s/' . $oldPrefix . '/' . $newPrefix . '/g ' . escapeshellarg($settingsFile);
shell_exec($command);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment