ec-cube2
ec-cube2 copied to clipboard
MySQLにおいてプラグイン導入時にバックアップが適切に行えない
再現環境
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