バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > dtb_orderテーブルを誤って削除してしまいました

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
narajin
投稿日時: 2012/4/2 18:38
対応状況: −−−
半人前
登録日: 2012/4/2
居住地:
投稿: 11
dtb_orderテーブルを誤って削除してしまいました
お世話になります。
EC CUBE初心者のnarajinと申します。どうぞよろしくお願いします。

昨日、phpmyadminにて、dtb_orderテーブルを表示し「空にする」タブをクリックしようとして、誤って「削除」をクリックし、dtb_orderを削除してしまいました。「空にする」で、注文データを一括削除できると勘違いし、さらに重ねて間違った操作をしてしまいました。

レンタルサーバご担当の方に削除前のmysqlのDB復旧処理をしてもらいましたが、dtb_orderはphpmyadmin上に表示されないままです。結果として、EC CUBE管理画面にもログインできない状態が続いています。

まだ公開前ですので、注文データそのものは復旧できなくてもよいのですが、dtb_orderテーブルそのものの復旧をどうやったよいのかわからず苦慮しております。

他のテーブルやデータは無傷で残っておりますので、再インストールせず復旧できる方法がございましたらご教示いただければ幸いです
tfuna
投稿日時: 2012/4/2 19:34
対応状況: −−−
新米
登録日: 2012/3/3
居住地:
投稿: 3
Re: dtb_orderテーブルを誤って削除してしまいました
私も詳しくはないのですが、

SQLで「CHECK TABLE dtb_order EXTENDED」で、テーブルの状態を確認して頂いて、エラーが出る場合は、「repair table dtb_order 」で修復するかどうかです。
dimaggio
投稿日時: 2012/4/2 20:19
対応状況: −−−
一人前
登録日: 2011/3/30
居住地: Tokyo
投稿: 120
Re: dtb_orderテーブルを誤って削除してしまいました
バージョンが記載されていないので2.4.4での話ですが、
html/install/sql/create_table_mysql.sql
の578行目付近にdtb_orderテーブルを作成するSQL文が記載されていますね。

phpMyAdminの「SQL」というSQL文を直接実行できる機能を使い、このCREATE以下を実行するというは如何でしょうか。

SQL DBを操作する作業ですので、くれぐれもリスクを十分ご理解いただいた上での話ではありますが。
narajin
投稿日時: 2012/4/2 23:22
対応状況: −−−
半人前
登録日: 2012/4/2
居住地:
投稿: 11
Re: dtb_orderテーブルを誤って削除してしまいました
tfunaさん、こんにちは。ありがとうございます。
試してみましたが、残念ながらrepairできない状態のようです。
narajin
投稿日時: 2012/4/2 23:38
対応状況: −−−
半人前
登録日: 2012/4/2
居住地:
投稿: 11
Re: dtb_orderテーブルを誤って削除してしまいました
dimaggioさん、ありがとうございます。
失礼しました、ver2.11.4です。

html/install/sql/create_table_mysql.sql

ご指摘の通り、dtb_orderテーブルを作成するSQL文が記載されております。明日試してみたいと思います。

ひとつ心配な点は、
仮にdtb_order作成に成功した場合、やはり中身は空ですので、既存のdtb_order_detail他のテーブルの中身と整合性がとれず、エラーになってしまうのではと思い躊躇しております。

この場合、注文データを持っている他のテーブルも空にする必要があるのでしょうか?
dimaggio
投稿日時: 2012/4/3 9:01
対応状況: −−−
一人前
登録日: 2011/3/30
居住地: Tokyo
投稿: 120
Re: dtb_orderテーブルを誤って削除してしまいました
引用:

narajinさんは書きました:

ひとつ心配な点は、
仮にdtb_order作成に成功した場合、やはり中身は空ですので、既存のdtb_order_detail他のテーブルの中身と整合性がとれず、エラーになってしまうのではと思い躊躇しております。

この場合、注文データを持っている他のテーブルも空にする必要があるのでしょうか?


試しに2.11.5で商品を購入後、dtb_orderテーブルを削除してみたら、ログイン時にシステムエラーが出ました。
その後、phpMyAdmin上でdtb_orderテーブルを作成するSQL文を実行することで、ログインはできるようになりました。
確かにデータの整合性は気になりますが、ログインそのものは復活できそうですね。
dtb_order_detail、dtb_order_detail_order_detail_id_seq、dtb_order_order_id_seq辺りのレコードが残骸っぽいので、その辺のレコードを削除するという感じでしょうか。
(そのままでもエラーにはならない気もしますが)
seasoft
投稿日時: 2012/4/3 9:08
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: dtb_orderテーブルを誤って削除してしまいました
残データよりもシーケンスが心配ですが、ある意味運良く、MySQL の auto_increment を使用していないので、放置でも良いかも。

むしろ、中途半端に擬似シーケンス(dtb_*_seq)をリセットしたりすると、面倒に巻き込まれるかも。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

narajin
投稿日時: 2012/4/3 9:32
対応状況: 解決済
半人前
登録日: 2012/4/2
居住地:
投稿: 11
Re: dtb_orderテーブルを誤って削除してしまいました
dimaggioさん、おはようございます。
dtb_orderテーブルを作成したらログインできるようになり、バックアップもとることができました。ありがとうございます!

注文テストをしてみましたが、特に問題なく動いているようです。念のため、
dtbをひとつずつ見ていき、注文と関連していそうなテーブルを空にしておきました。

dtb_order_detail、dtb_order_detail_order_detail_id_seq、dtb_order_order_id_seq
はそのままにしてみましたが、order_idが前のデータの続きの番号になっているので、一意な値のまま保持できているようです。

これでなんとか公開できそうです。どうもお世話になりました!
narajin
投稿日時: 2012/4/3 10:08
対応状況: −−−
半人前
登録日: 2012/4/2
居住地:
投稿: 11
Re: dtb_orderテーブルを誤って削除してしまいました
seasoft さん、おはようございます。ご教示ありがとうございます。

dtbをひとつずつのぞいていき、dtb_order_detail、dtb_order_temp、dtb_shippingなど、注文データが見えたものは空にしました。

dtb_*_seqという名前のものは、怖いのでそのままにしておきましたが、seasoftさんのお話をきいてホッとしました。

シロウトがphpmyadminを操作するときは、まず最初にバックアップからですね。

みなさんお世話になりました。今後とも、よろしくお願いします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.