EC-CUBE4:MYSQL直弄りで失敗した件

EC-CUBE4:MYSQL直弄りで失敗した件

EC-CUBE4インストール実行もデータUPで失敗。

先の記事で書いた通り、WordPressで書いた会社のポータルページが500エラーで起動しなくなりました。

「悪い事は前向きな切っ掛けとしてとらえる」と言うことで、折角だからとECキューブの最新をインストールしてみました。

EC-CUBE4をダウンロードしサーバーにUP

インストールまでの動作は超簡単。

ec-cube.netのダウンロードページから本体をダウンロード

解凍してサーバーに上げます。

EC-CUBE用のフォルダを作り、その中に解凍したデータをアップロード。

会社ポータルの変わり=ドキュメントルートに設定したいので、一番外側の.hatccessを弄りドキュメントルートを変更します。ドキュメントルートの変更はここら辺が参考になります。

こうしておけば、再度会社ポータルを設置しようとした場合でも.hatccessの変更だけで入れ替えが可能!
便利ですよねぇ。

EC-CUBE4をインストール

ECキューブ開発ドキュメントを参考にインストールを実行します。
FTPで上げたので今回はパッケージインストールを参照です。

  • http://example.com/{EC-CUBEをアップロードしたディレクトリ}

え??これだけ??

はい、これだけで初期設定画面が起動。順序良く進めインストール完了です。

ココまでは順調だったがカテゴリ登録で失速

某コンサルさんの指導で超細かく分けた弊社の商品カテゴリ。

その数600越えです。

これを1件1件登録なんてアホな事はしたくないのでCSVで登録しようとテーブルを整備します。

カテゴリID 表示ランク カテゴリ名 親カテゴリID 階層

CSVの項目もこんな程度。

楽勝だと思い作り変えていきます。

カテゴリID 表示ランク カテゴリ名 親カテゴリID 階層
1 1 新入荷 1
2 2 特集 1
3 3 商品別 1
4 4 ブランド別 1
5 5 フライパン 3 2
6 6 調理鍋 3 2
7 7 やかん/ケトル 3 2
8 8 カバー/鍋蓋 3 2
9 9 調理道具 3 2
10 10 食器/カトラリー 3 2
11 11 容器/ストッカー 3 2
12 12 キッチン雑貨 3 2
13 13 掃除道具 3 2
14 14 洗濯道具 3 2
15 15 スリッパ/マット 3 2
16 16 文具/事務用品 3 2
17 17 美容健康用品 3 2
18 18 電気用品 3 2
19 19 自転車/車用品 3 2
20 20 園芸用品 3 2
21 21 季節雑貨 2 2
22 22 アウトドアグッズ 3 2
23 23 収納道具/インテリア 3 2
24 24 財布/バッグ/時計 3 2
25 25 喫煙具 3 2
26 26 子供用品 3 2

約600のレコードを整理して【カテゴリCSV登録】からアップロード実行!

え!?63件が最大だって!!
残念ながら一気に処理できないようで小分けします。

そして、再度アップロード!
今度は上手くいったようです。確認のために【カテゴリ管理】をクリック。

ん?? IDが98番から振られてる…。
さっきの件数多い時にカウントも進めたか?
でもCSVの親カテゴリの欄には1番から振った番号で関係性を記載してます。
再度見直してふり直すなんて面倒臭くてやりたくない。

だったら直接MySQL弄ればいいじゃん!

そう思い立ちMySQLのdtb_categoryをダウンロード、構成をコピーします。

MySQL直弄り後MYSQLの挙動がおかしくなる

MySQLに移植するcategoryテーブルをこんな感じで作りました。

id parent_category_id creator_id category_name hierarchy sort_no create_date update_date discriminator_type
1 1 新入荷 1 1 2018/11/11 8:48 2018/11/11 8:48 category
2 1 特集 1 2 2018/11/11 8:48 2018/11/11 8:48 category
3 1 商品別 1 3 2018/11/11 8:48 2018/11/11 8:48 category
4 1 ブランド別 1 4 2018/11/11 8:48 2018/11/11 8:48 category
5 3 1 フライパン 2 5 2018/11/11 8:48 2018/11/11 8:48 category
6 3 1 調理鍋 2 6 2018/11/11 8:48 2018/11/11 8:48 category
7 3 1 やかん/ケトル 2 7 2018/11/11 8:48 2018/11/11 8:48 category
8 3 1 カバー/鍋蓋 2 8 2018/11/11 8:48 2018/11/11 8:48 category
9 3 1 調理道具 2 9 2018/11/11 8:48 2018/11/11 8:48 category
10 3 1 食器/カトラリー 2 10 2018/11/11 8:48 2018/11/11 8:48 category
11 3 1 容器/ストッカー 2 11 2018/11/11 8:48 2018/11/11 8:48 category
12 3 1 キッチン雑貨 2 12 2018/11/11 8:48 2018/11/11 8:48 category
13 3 1 掃除道具 2 13 2018/11/11 8:48 2018/11/11 8:48 category
14 3 1 洗濯道具 2 14 2018/11/11 8:48 2018/11/11 8:48 category
15 3 1 スリッパ/マット 2 15 2018/11/11 8:48 2018/11/11 8:48 category
16 3 1 文具/事務用品 2 16 2018/11/11 8:48 2018/11/11 8:48 category
17 3 1 美容健康用品 2 17 2018/11/11 8:48 2018/11/11 8:48 category
18 3 1 電気用品 2 18 2018/11/11 8:48 2018/11/11 8:48 category
19 3 1 自転車/車用品 2 19 2018/11/11 8:48 2018/11/11 8:48 category
20 3 1 園芸用品 2 20 2018/11/11 8:48 2018/11/11 8:48 category
21 2 1 季節雑貨 2 21 2018/11/11 8:48 2018/11/11 8:48 category
22 3 1 アウトドアグッズ 2 22 2018/11/11 8:48 2018/11/11 8:48 category
23 3 1 収納道具/インテリア 2 23 2018/11/11 8:48 2018/11/11 8:48 category
24 3 1 財布/バッグ/時計 2 24 2018/11/11 8:48 2018/11/11 8:48 category
25 3 1 喫煙具 2 25 2018/11/11 8:48 2018/11/11 8:48 category
26 3 1 子供用品 2 26 2018/11/11 8:48 2018/11/11 8:48 category

アップロード実行!
MYSQL側は順調に処理を終えました。

上手くいっただろうとページを確認すると…反映されてない。
キャッシュやらクッキーやらの原因だと思い閲覧履歴のクリアを実行。
それでも何故か反映されない。

原因を探るべく再度MYSQLへログイン。

あれ?エラーで勝手にログアウトさせられる。
その後いろいろ手段を講じてみるも全く変わる様子無し。
やばい事やっちまったかな。
途方に暮れながら晩御飯やら子供との食後のコミュニケーションやらでしばらく放置となりました。

子供が寝た深夜24時。
もう一度確認しようと酔った頭でMYSQLにつなぐと…あれ?エラー出ないじゃん?
ECキューブの動作も確認します。
どうやら想定していた形に更新できている様子。
ん~~何が原因だったのでしょう。

まとめ

  • EC-CUBEではMYSQLから直弄りは極力控える
  • CSV更新の際は基礎データを先に作成し更新でデータ調整を行う考えの方が無難
  •  やむを得ずMYSQL直弄りした場合は繁栄に時間が掛かる可能性を考慮する

できるだけコンソールから行きましょうという事ですね。