EC-CUBEのMySQLデータをPostgreSQLに移行する際の注意
MySQLにて管理していたデータをPostgreSQLに移行することになり詳細な方法は以前記述した
にて行ったんですが漏れがありました。
データの追加したり変更したりしていくと挙動がおかしくなる。。。
データの整合性が取れてなかったんですね。
結論から言うとオートインクリメントタイプのカラムの考慮が抜けてた。
取った対応は以下の通り。
- オートインクリメントタイプのカラムの洗い出し
- 洗い出したカラムの既存データの最大値を調査
- 最大値が2以上の場合は対応するシーケンスの最終値を、既存データの最大値で更新
調査結果としてオートインクリメントタイプのカラムは以下の通りでした。(EC-CUBEバージョン:2.4.1)
テーブル名 カラム名 dtb_best_products best_id dtb_bloc bloc_id dtb_campaign campaign_id dtb_campaign_order campaign_order_id dtb_category category_id dtb_class class_id dtb_classcategory classcategory_id dtb_csv no dtb_csv_sql sql_id dtb_customer customer_id dtb_deliv deliv_id dtb_delivfee fee_id dtb_delivtime time_id dtb_holiday holiday_id dtb_kiyaku kiyaku_id dtb_mail_history send_id dtb_mailmaga_template template_id dtb_member member_id dtb_mobile_kara_mail kara_mail_id dtb_module_update_logs log_id dtb_news news_id dtb_order order_id dtb_other_deliv other_deliv_id dtb_pagelayout page_id dtb_payment payment_id dtb_products product_id dtb_products_class product_class_id dtb_question question_id dtb_question_result result_id dtb_review review_id dtb_send_customer send_id dtb_send_history send_id dtb_site_control control_id dtb_table_comment id dtb_trackback trackback_id dtb_user_regist user_id
結果正常に動き出したようでまずは安心。