ec-cube2 icon indicating copy to clipboard operation
ec-cube2 copied to clipboard

MySQLにおいてプラグイン導入時にバックアップが適切に行えない

Open ttsuru opened this issue 5 years ago • 0 comments

再現環境

EC-CUBE 2.13.5

再現手順

システム設定>バックアップ管理 において、大文字を含むテーブル名が存在する場合に、バックアップ時に以下のエラーが発生します。

DB処理でエラーが発生しました。                                               
  SQL: [SELECT * FROM `plg_*****_dtb_*****`]                                
  MDB2 Error: no such table                                                    
  _doQuery: [Error message: Could not execute statement]                       
  [Last executed query: PREPARE mdb2_statement_mysql_*****
  10ff483cadf5a553b38 FROM 'SELECT * FROM `plg_*****_dtb_*****`']           
  [Native code: 1146]                                                          
  [Native message: Table '*****.plg_*****_dtb_*****' doesn't exist] 

原因

SC_Query::listTables を呼び出した際にライブラリ側で大文字を小文字に変換しているため。 MDB2_Driver_Manager_mysql::listTables に処理が存在します。

plg_*****_dtb_***plg_***** 部分については、 プラグインコードを利用することがプラグインの作成ガイドラインで書かれていて、そちらに従うとエラーになるようです。

フォーラム関連事項

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=14282&forum=11

ttsuru avatar Aug 20 '20 05:08 ttsuru