حذف پیشوند جداول در database

گاهی در برخی شرایط لازم می شود که پیشوند جدول ها را از درون Database حذف کنیم. برای این منظور کافی است table ها را یکی یکی ویرایش کرده و نام آن را اصلاح کنیم که کار وقت گیری است.

اما آقای Mark Crandell اسکریپتی نوشته است که کار من را خیلی ساده کرد. این اسکریپت در این آدرس موجود است:

http://drupal.org/node/403742

سورس آن هم به صورت زیر است:

#!/usr/local/apache2/bin/php
$db_password = ‘PASSWORD GOES HERE’;
$db_user = ‘MYSQL USER NAME’;
$db_host = “-h HOSTNAME”; // “-h localhost”; // Probally localhost
$db_port = “-P 3306”; // “”; //Use blank if not needed

$db_name = $_SERVER[‘argv’][1]; $prefix = $_SERVER[‘argv’][2]; $remove = $_SERVER[‘argv’][3]; if(strtolower($remove) == ‘remove’ || strtolower($remove) == ‘r’){ $remove = (bool) TRUE; } else { $remove = (bool) FALSE; } /* if(!in_array($db_name, array(‘drupal_site’, ‘d7’ ) )){ echo “Not a valid mysql database name, try editing the script.\n”; exit; } */ $query = “mysql -u$db_user -B -p$db_password -s -r $db_host $port $db_name -e ‘SHOW TABLES;’”; exec($query, $tables); if($remove){ foreach($tables as $key => $t){ $rename[$key][‘from’] = $t; $rename[$key][’to’] = preg_replace(’/^’.$prefix.’/i’,’’,$t);
} } else { foreach($tables as $key => $t){ $rename[$key][‘from’] = $t; $rename[$key][’to’] = $prefix . $t; } } foreach($rename as $r){ $query = “mysql -u$db_user -B -p$db_password -s -r $db_host $port $db_name -e ‘RENAME TABLE $db_name.{$r[‘from’]} TO $db_name.{$r[’to’]};’”; exec($query); } exit; ?>

نظرات شما

قسمت نظرات با استفاده از سرویس دیسکاس پیاده سازی شده است. متاسفانه این سرویس از داخل ایران قابل دسترس نیست. لطفا از آی پی خارجی استفاده کنید.