2013-02-11 3 views
4

У меня случайно есть установка Magento без подчеркивания для префикса таблицы. Есть ли возможность изменить это автоматически? Мне не нравится изменять 337 столов вручную :-)Префикс таблицы базы данных изменений Magento

Я пробовал решение this, но это не работает.

Майкл

+0

ли выбранный ответ работы для вас? Какая версия Magento? – Dan

ответ

1

Вы можете создать SQL переименовать все таблицы с этим выберите:

SELECT 'rename table '||table_name||' to '||'newprefix'||table_name||';' 
FROM information_schema.tables 
+0

Или используйте 'SELECT CONCAT ('таблица переименования', имя_таблицы, 'to', 'newprefix_', table_name, ';') FROM information_schema.tables' для [лучшей совместимости] (http://stackoverflow.com/a/8212239/1402846). – Pang

0
<?php 
$database_host="localhost"; 
$database_user="root"; 
$database_password=""; 
$magento_database="test1"; 
$table_prefix="magtest_"; 
?> 
<?php 
$db=mysql_connect($database_host,$database_user,$database_password); 
mysql_select_db($magento_database); 
$query="SHOW TABLES"; 
$result=mysql_query($query) or die('Err'); 
while($row=mysql_fetch_array($result)){$old_table=$row[0]; 
if(preg_match('/'.$table_prefix.'/',$old_table)){echo"Table $old_table already done<br/>\n";continue;} 
$new_table=$table_prefix.$old_table;echo"Renaming $old_table to $new_table<br/>\n"; 
$query="RENAME TABLE `$old_table`  TO `$new_table`";mysql_query($query);} 
?> 

шаги: резервное копирование базы данных

  1. тейк.
  2. Создайте файл с именем «rename_table_prefix.php» и поместите его в корневой каталог.
  3. Вставьте вышеуказанный скрипт в него.
  4. запустите файл http: www.domain.com/magento/rename_table_prefix.php
  5. Все таблицы будут переименованы.
  6. перейти в приложение/и т.д./local.xml
  7. измените следующую строку, как это
  8. вы сделали.
0

я запускаю этот скрипт для изменения Magento DB Таблица префиксов

// mege_rename_table_prefix.php 
//New Prefix Name 
$table_prefix = "test_"; 
//Magento Database Backup php script 
    error_reporting(E_ALL^E_NOTICE); 
    ini_set('display_errors', 1); 
    ini_set('memory_limit', '1512M'); 
    // Get Magento Application 
    require_once 'app/Mage.php'; 
    Mage::app(); 
    // Mage::app('default'); 
    //Mage::app('main'); 
    // get Magento config 
    $config = Mage::getConfig()->getResourceConnectionConfig("default_setup"); 
    $dbinfo = array(
     "host" => $config->host, 
     "user" => $config->username, 
     "pass" => $config->password, 
     "dbname" => $config->dbname 
    ); 
    // Database Config 
    $db_host = $dbinfo["host"]; 
    $db_user = $dbinfo["user"]; 
    $db_pass = $dbinfo["pass"]; 
    $db_name = $dbinfo["dbname"]; 
//conect db 
$db = mysql_connect($db_host, $db_user, $db_pass); 
mysql_select_db($db_name); 
$query = "SHOW TABLES"; 
$result = mysql_query($query) or die('Err'); 
while($row = mysql_fetch_array($result)) { 
    $old_table = $row[0]; 
    if(preg_match('/'.$table_prefix.'/', $old_table)) { 
     echo "Table $old_table already done<br/>\n"; 
     continue; 
    } 
    $new_table = $table_prefix.$old_table; 
    echo "Renaming $old_table to $new_table<br/>\n"; 
    $query = "RENAME TABLE `$old_table` TO `$new_table`"; 
    mysql_query($query); 
    } 
Смежные вопросы