EC-CUBEのMySQLデータをPostgreSQLに移行する際の注意

MySQLにて管理していたデータをPostgreSQLに移行することになり詳細な方法は以前記述した

にて行ったんですが漏れがありました。


データの追加したり変更したりしていくと挙動がおかしくなる。。。


データの整合性が取れてなかったんですね。
結論から言うとオートインクリメントタイプのカラムの考慮が抜けてた。


取った対応は以下の通り。

  1. オートインクリメントタイプのカラムの洗い出し
  2. 洗い出したカラムの既存データの最大値を調査
  3. 最大値が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


結果正常に動き出したようでまずは安心。