EC-CUBE

EC-Orange とは

EC-CUBE Q & A

キーワードで検索

カテゴリから探す

質問と回答

1系から2系へのDB移行について

1系から、2系へ乗り換えたいのですが、
現在の商品登録情報・購入履歴・会員情報のみでいいのですが、DB情報は、そのまま使えるのでしょうか?

並べ替え等の変換等が必要なようでしたら、作業を依頼できる法人・個人があれば教えてください。

A. 回答

1系から2系へのDB移行について への1件のコメント

  1. admin より:
    僕の環境で実際にうまくいった例なので、効率とかそういったことは全く考慮されていないことを念頭においてください 環境によってはうまくいかないこともありえます。作業される方はテストを十分行うなどし、自己責任でお願いします。 【前提】 ・MySQL4.1からPostgreSQL8.3にデータ移行します。 ・phpMyAdminとphpPgAdminをそれぞれ利用します。 ・現状のMySQLにインストールしているEC-CUBEの情報が、phpMyAdmin、EC-CUBE側の両方で文字化けせず閲覧可能である。 (phpMyAdminで見たときに文字化けが発生していると、エクスポートした情報も文字化けしている可能性が高いので、使いものになりません) ・データベースが違うので、同一サーバでも作業可能だと思います。 【作業の流れ】 ≪MySQLの作業です≫ (1)phpMyAdminにログインし、目的のデータベースに接続する。 (2)目的のテーブルにアクセスし、エクスポートをクリック。 (3)エクスポートで「MS Excel用のCSV」にチェックをいれ、   NULLの代替文字列「\\N」   「1行目にフィールド名を追加する」にチェック   Excelのエディション「Windows」   に設定して「ファイルに保存する」にチェックをいれ「実行する」ボタンをクリックする。   するとダウンロードが始まるので、保存する。 (4)エクスポートしたテーブルの「次へ Autoindex」の値をメモしておく。中にはないものもあります(dtb_baseinfo等)   ※後にPostgreSQLの「シーケンス値」にこの値を反映させる。   ※dtb_product_categoriesは1系にはテーブルがないので、   以下のSQLを発行して、結果をエクスポートしてダウンロードする。   SELECT product_id, category_id, rank FROM dtb_products (5)エクスポートしたファイルをテキストエディタで開く。   文字コードがUTF-8以外だったら、UTF-8で保存しなおす。   ※このとき、文字化けが発生しないように注意。   1行目にフィールド(カラム)名が挿入されているが、   フィールド名とフィールド名の間を区切るカンマ(,)に   半角スペースが入っているとphpPgAdminでインポートエラーになることがあるので、   「フィールド名, フィールド名…」となっていたら   「フィールド名,フィールド名…」という風に半角スペースを消しておく。 ————————————- ≪ここから下はPostgreSQL側の作業です。≫ (5)phpPgAdminにログインし、目的のDBへアクセスする。 (6)目的のテーブルのデータを空っぽにする。 (7)目的のテーブルにデータをインポートする。   その際、フォーマットはCSV、NULL文字は「\\N」にする。 (8)「インポートが完了しました」というようなメッセージが表示されれば完了。   エラーが発生したらエラー内容をよく見て修正し、   再度アップロードする。 (9)先ほどメモしておいた「次へ Autoindex」の値を、シーケンス値に反映させる。 結構地味な作業なので、エクセルなどで移行のための表をつくり、 地道に潰していった方が間違いがなくていいと思います。 効率を考えるならば他にももっと良い方法があるかもしれませんが、今のところ追いかけていないのでこの方法しか御説明できません。くれぐれもテストを十分してください。