2.4.1を2.13.1へ移行の作業。
数々の壁にぶち当たったので、それぞれヒントになればと思いメモしておく。
デザインを調整。ある程度目処が立ったところで、
データの移行のテスト。
稼働しているサイトだから手順を記録して移行日に最短で最新データに上書きしないといけない。
1.カテゴリはCSVの書き出し&読み込みで。
2.商品データをCSVに書き出して編集してアップしようかなと思ったものの、商品情報の文字列のせいでエクセルでは上手く編集できない。
そこでモジュール使う方がいいのかと、
2.11と2.12をインストールし、モジュールを取得して2.4.1のデータをエクスポートするまでは上手くいくも、2.11にインポートできない。システムエラー。
これを使える様に調整するのは雲をつかむ様な作業。
これで半日を棒に振ってしまった。
調べてると、エラーで出来ないからテーブルコピーで構造をいじってCSVインポートした人もいる。
そっか、結局は力技ですか。
当初はそのつもりだったので、必要なテーブルの構造を確認して進める事にする。
最初からそうしろよってね。
コピーしたのは、
商品、顧客、受注に関するテーブル。
あとは手動で。
※決済種別や発送種別とかは番号を合わせとかないといけない。
【1】必要なテーブルの構造とデータをエクスポート
(コンソールは使えないサーバなのでウェブブラウザからの操作のみとなる)
※postgresからMysqlなのでCREATE文のtimestamp型の場合 without time zoneは削除
あとtimestamp複数の場合、now()を利用するカラム以外にデフォルト値を入れる
例)カラム名 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
機種依存文字の問題発生。
phpPgAdminからエクスポート機能を使用するとどうしても文字化けが回避できない。
画面で文字化けしない機種でsql表示させ、コピーしてエクセルとテキストエディタで調整し、インポート用のcsvを作成する。
もしくは、XHTMLで書き出し、それを加工する。
(アクセスがあると早いんだけど...あいにく持っていない。)
一旦、テストテーブルに入れる。
余計なカラムを削除しつつインポート。
(※dtb_orderは不要カラム削除の前に、….)
管理画面でどうやらPOSTの値が文字化け。
phpの問題だな?
php.iniが効いてないっぽい。
すっきり解決。
dtb_orderは不要カラム削除の前に、
dtb_orderからdtb_shippingへ入れる為にテーブルコピーして加工。
CREATE table dtb_shipping AS SELECT * FROM dtb_order;
dtb_order_detailのproduct_class_idにclasscategory_id1でselectし、update。
UPDATE dtb_order_detail,dtb_products_class
set dtb_order_detail.product_class_id= dtb_products_class.product_class_id
where dtb_order_detail.classcategory_id1= dtb_products_class.classcategory_id1 and dtb_order_detail.classcategory_id1>0;
order_detail_idがなくてインポートできない!
エクセルで割り振る。。
完了〜。
会員ログインできない。
config.php AUTH_MAGICの値を移行する。
2.4.1は/data/mtb_constants_init.phpにある。
できた。
しまった、管理者ログインのパスワードを再設定するを忘れる←注意
商品種別
product_type_idが0で機能しない
UPDATE dtb_products_class set product_type_id=1;
DNS切り替え後、
自分のルーターを再起動。
商品規格の更新でシステムエラー
dtb_products_classのproduct_class_idの最大値を
dtb_products_class_product_class_id_seqに入れるだけではだめ。
オートインクリメントの値をproduct_class_idの最大値+1に更新しないといけない。
念のため手動でinsertしたテーブルの他のシーケンス値とオートインクリメントの値を確認し、合わせておく。
コメントする