質問 > 管理機能 > 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テーブルを誤って削除してしまいました 引用:
試しに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)をリセットしたりすると、面倒に巻き込まれるかも。
|
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を操作するときは、まず最初にバックアップからですね。 みなさんお世話になりました。今後とも、よろしくお願いします。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |