バージョン選択

フォーラム

メニュー

オンライン状況

58 人のユーザが現在オンラインです。 (43 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 58
もっと...

サイト内検索

質問 > その他 > 1系から2系へのDB移行について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
dakara
投稿日時: 2008/11/6 16:38
対応状況: −−−
新米
登録日: 2008/11/6
居住地:
投稿: 5
1系から2系へのDB移行について
1系から、2系へ乗り換えたいのですが、
現在の商品登録情報・購入履歴・会員情報のみでいいのですが、DB情報は、そのまま使えるのでしょうか?

並べ替え等の変換等が必要なようでしたら、作業を依頼できる法人・個人があれば教えてください。
homan
投稿日時: 2008/11/6 21:08
対応状況: −−−
仙人
登録日: 2007/7/2
居住地: 宮崎県宮崎市
投稿: 633
Re: 1系から2系へのDB移行について
文字コードなどに気を付ければ、基本的に問題ないと思います。
僕は1系(1.4系:MySQL4系)から2系(PostgreSQL8.3系)に何度か移行作業したことがあります。

商品情報といっても、商品情報にはカテゴリや規格も大きくかかわっていますので、だいたい以下のテーブルの情報を移行する必要があります。(もっというと、購入履歴も移行ということは支払方法や配送方法も移行しておくのが無難です)

・dtb_category(カテゴリ)
・dtb_class(規格名)
・dtb_classcategory(規格の内容)
・dtb_customer(顧客情報)
・dtb_deliv(配送業者)
・dtb_delivfee(送料表)
・dtb_delivtime(配送時間)
・dtb_order(受注情報)
・dtb_order_detail(受注情報詳細)
・dtb_other_deliv(他のお届け先)
・dtb_payment(支払方法)
・dtb_products(商品情報)
・dtb_product_categories(これは1系に存在しないテーブルだが、後に記すSQL文でデータを取得可能)
・dtb_products_class(商品と規格のひも付け)
・dtb_review(商品レビュー(必要があれば))


ちなみに僕の場合は、上記に加えメールの履歴やメルマガテンプレートなど、必要になりそうなものはすべて移しています。

2系にあって、1系にないのが「dtb_product_categories」なので、以下のSQL文を発行した結果をdtb_product_categoriesに格納するとよいです(1.4.2では無かったのですが、最新の1系ではあるのかもしれません)。

SELECT product_id, category_id, rank FROM dtb_products


あとは、MySQLの場合はAUTO_INCREMENT値、PostgreSQLの場合はシーケンス値が移行元と移行先で同じになるように気をつけて下さい。画像は/html/upload/save_image さえあればどうにかなります(mobile_imageはモバイルでアクセスすれば自動で生成されますので)


参考になれば幸いです


----------------
このコミュニティでの投稿はボランティアの範囲に留めさせていただいています。個別の相談やカスタマイズは有償にて承っておりますのでご相談下さい。

[url=http://www.eccube-school.jp/]EC-CUBE

dakara
投稿日時: 2008/11/7 14:16
対応状況: −−−
新米
登録日: 2008/11/6
居住地:
投稿: 5
Re: 1系から2系へのDB移行について

ありがとうございます。

引用:

文字コードなどに気を付ければ、基本的に問題ないと思います。


案の定、2.3.1を入れたら、phpMyAdmin上の文字が、「食品」のように文字化けしてしまします。
表示上は問題ないです。

で、インポートするとphpMyAdminはいいのですが、サイトの表示が、????になってしまいます…。

お助け下さい。
homan
投稿日時: 2008/11/7 16:07
対応状況: −−−
仙人
登録日: 2007/7/2
居住地: 宮崎県宮崎市
投稿: 633
Re: 1系から2系へのDB移行について
文字コードは 1系がEUCだったのですが、2系ではUTF-8にする必要があります。同じサーバ上で同じMySQLを使った場合は難しいかもしれません。

僕の場合はMySQLからPostgreSQLに移行という形でデータベースが異なった為、同じサーバ上でも特に問題ありませんでした。


----------------
このコミュニティでの投稿はボランティアの範囲に留めさせていただいています。個別の相談やカスタマイズは有償にて承っておりますのでご相談下さい。

[url=http://www.eccube-school.jp/]EC-CUBE

dakara
投稿日時: 2008/11/8 4:06
対応状況: −−−
新米
登録日: 2008/11/6
居住地:
投稿: 5
Re: 1系から2系へのDB移行について
サーバーはラピッドサイトを使っており、サーバーのサポート情報を見ながらPostgreSQLをインストール&フォーラム内を参考になんとかEC-CUBEインストールをしました。

引用:

僕の場合はMySQLからPostgreSQLに移行という形でデータベースが異なった為、同じサーバ上でも特に問題ありませんでした。


phpMyAdminからエクスポートし、phpPgAdminでインポートしようとしても、XMLでもCSVでもエラーとなってしまいます。
DB間の移行はどういった方法で行うのでしょうか?

環境
PostgreSQL 7.4.19
MySQL 4.1.22
dakara
投稿日時: 2008/11/10 1:06
対応状況: −−−
新米
登録日: 2008/11/6
居住地:
投稿: 5
Re: 1系から2系へのDB移行について
EC-CUBEの学校に、このように書いてあったので期待してます!
引用:

弊社では1系(MySQL)から2系(PostgreSQL)へサイト情報(データ)を移動させる方法ならば何度も経験してうまくいっていますので、別の機会に移行方法などを御説明しようと思います。

とりあえず、ギリギリまでは現在の環境で粘ってみます
こちらで先に教えて頂ければ、大変うれしいですが…。
masyaru
投稿日時: 2008/11/10 9:27
対応状況: −−−
新米
登録日: 2008/10/23
居住地:
投稿: 4
Re: 1系から2系へのDB移行について
dakaraさん

趣旨がちがえばすみません。

https://www.ec-sync.com/

モニター利用とのことですが、EC CUBE対応となっています。
詳しいことは分かりませんが・・・。
homan
投稿日時: 2008/11/10 12:27
対応状況: −−−
仙人
登録日: 2007/7/2
居住地: 宮崎県宮崎市
投稿: 633
Re: 1系から2系へのDB移行について
僕の環境で実際にうまくいった例なので、効率とかそういったことは全く考慮されていないことを念頭においてください
環境によってはうまくいかないこともありえます。作業される方はテストを十分行うなどし、自己責任でお願いします。


【前提】
・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」の値を、シーケンス値に反映させる。


結構地味な作業なので、エクセルなどで移行のための表をつくり、
地道に潰していった方が間違いがなくていいと思います。

効率を考えるならば他にももっと良い方法があるかもしれませんが、今のところ追いかけていないのでこの方法しか御説明できません。くれぐれもテストを十分してください。


----------------
このコミュニティでの投稿はボランティアの範囲に留めさせていただいています。個別の相談やカスタマイズは有償にて承っておりますのでご相談下さい。

[url=http://www.eccube-school.jp/]EC-CUBE

dakara
投稿日時: 2008/11/12 3:19
対応状況: 解決済
新米
登録日: 2008/11/6
居住地:
投稿: 5
Re: 1系から2系へのDB移行について
出来ました!
ありがとうございます!

NULL文字を「\N」でエラーでしたが、「NULL」としたら出来ました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,279名です
総投稿数は109,685件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.