5

テーブルプレフィックスにアンダースコアがないMagentoを誤ってインストールしました。これを自動的に変更するオプションはありますか?337個のテーブルを手作業で変更するのは好きではありません:-)

私はこの解決策を試しましたが、うまくいかないようです。

マイケル

4

6 に答える 6

2

このselectを使用して、すべてのテーブルの名前を変更するSQLを作成できます。

SELECT 'rename table '||table_name||' to '||'newprefix'||table_name||';'
FROM information_schema.tables
于 2013-02-11T18:56:46.467 に答える
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. app / etc/local.xmlに移動します
  7. 次の行をそのまま変更します
  8. 完了です。
于 2013-09-23T07:28:29.970 に答える
0

MagentoDBテーブルプレフィックスを変更するためにこのphpスクリプトを実行します

// 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);
    }
于 2015-06-18T08:01:48.617 に答える
0

PHPMyAdminで簡単に変更できます。

Click/open the database.

Click Structure at the top bar.
This will display all your tables. Note the existing prefix.

Scroll to the bottom, to the last table.

Click "Check all".
This will check all tables.

Click the drop down menu just next to it - the one with the default value "with selected".

Select "Replace table prefix:"
This will bring you to a new page with two text inputs.

Fill in your existing prefix, e.g. "oldPrefi_". Don't forget the underscore.

Fill in your new prefix, e.g. "newPrefi_". Don't forget the underscore.

Finally, click submit.

新しいプレフィックスが付いたテーブルリストにリダイレクトされます。

于 2019-11-15T11:50:38.037 に答える
0

ステップ1-以下のスクリーンショットに示すように、env.phpファイルのtable_prefixを変更します

テーブルプレフィックスMagento2

ステップ2-次のクエリを実行して、既存のテーブルにプレフィックスを追加するためのALTERステートメントを取得します-:

SELECT Concat('ALTER TABLE ', TABLE_NAME, ' RENAME TO qa_',
TABLE_NAME, ';') FROM information_schema.tables WHERE table_schema =
'DB_NAME'

ステップ3-Magentoルートフォルダで次のコマンドを実行して、Magento2DBをアップグレードします

php bin/magento setup:upgrade

問題が発生した場合は、env.phpからtable_prefixを削除し、DBインスタンスで次のクエリを実行して、テーブルの名前を元に戻すことができます。

SELECT Concat('ALTER TABLE  ', TABLE_NAME ,  '  RENAME TO ',
replace(TABLE_NAME,'qa_',''), ';') FROM information_schema.tables
WHERE table_schema = 'magento_2'

それが誰かを助けることを願っています!

于 2020-01-07T07:56:20.903 に答える
0

その問題を修正する手順(100%動作します、同じ問題があり、それを修正しました)

上記の解決策は、テーブル名を更新できるためほとんど機能しませんが、FORIEGNキーマッピングによって問題が発生します。したがって、以下はそれを修正するための最良の方法です。

  1. DB全体のエクスポート(バックアップ)
  2. ファイル全体からPREFIXワードを削除します。
  3. 既存のDBを削除し、更新されたDBをインポートします。
  4. env.phpファイルからPREFIXを削除します
于 2020-12-30T13:53:13.403 に答える