3 会員データの移行
データベースの会員データを移行しただけでは、会員が今までと同じパスワードでログイン出来ません。
data/config/config.phpの修正が必要です。
移行元のconfig.phpが必要になります。
config.phpの修正は、すべてのデータベース移行が完了してからでもいいでしょう。
詳しくは、「8 パスワード(会員・管理者)の移行」をご覧ください。
■会員データの移行に必要なテーブルは次の通りです。
・dtb_customer(カラム構造を同じにしてからエクスポート)
・dtb_customer_customer_id_seq
・dtb_customer_favorite_products
(1)dtb_customerの移行(カラム構造を同じにする)
◆画像で比較:EC-CUBE2.12系(左)と本サイトカスタマイズ2.13系 MySQL PostgreSQL
  • カラム構造を同じにする
    現在のサイトで、下記クエリを実行してカラムを追加し、同じカラム構造にしてください。
    カラム数と順序を確認し、全く同じ構造にしてください。
    ALTER TABLE dtb_customer ADD company_name text;
    ALTER TABLE dtb_customer ADD item02 text;
    ALTER TABLE dtb_customer ADD item03 text;
    ALTER TABLE dtb_customer ADD item04 text;
    ALTER TABLE dtb_customer ADD zipcode text;
    ALTER TABLE dtb_customer ADD country_id int;
    
  • 移行元が同じカラム構造になったら、dtb_customerをエクスポートします。
  • 移行先(EC-CUBEカスタマイズ)の、dtb_customerテーブルを空にします。
  • 続けて、エクスポートしたdtb_customer.sql(dump.csv)を、インポートします。
  • 移行元のテーブルから、追加したカラムを削除する場合は、下記クエリを実行すると削除できます。
    ALTER TABLE dtb_customer DROP company_name;
    ALTER TABLE dtb_customer DROP item02;
    ALTER TABLE dtb_customer DROP item03;
    ALTER TABLE dtb_customer DROP item04;
    ALTER TABLE dtb_customer DROP zipcode;
    ALTER TABLE dtb_customer DROP country_id;
    
(2)dtb_customer_customer_id_seqの移行
ここは数量のデータです。
移行元のエクスポートファイルを、移行先にそのままインポートします。
もしも、移行先にdtb_customer_customer_id_seqが存在しない場合は、あとで自動的に生成されますので、インポートの必要はありません。

【PostgreSQLの場合】
シーケンスに登録されます。
dtb_customerのcustomer_idと、dtb_customer_customer_id_seqの最終値に整合性がとれていないと、IDの重複が起こったり、システムエラーの原因になります。
下記SQLで再設定します。
select setval('dtb_customer_customer_id_seq',(select max(customer_id) from dtb_customer));
(3)dtb_customer_favorite_productsテーブルの移行
カラム構造に違いはありません。
移行元のエクスポートファイルを、移行先にそのままインポートします。
このページの先頭へ