실수로 Magento 매장에서 모든 리뷰를 지 웠습니다. 흥미로운 점은 PhpMyAdmin에 로그인 할 때 내 리뷰가 모두있는 review_detail 테이블을 볼 수 있기 때문에 데이터베이스에서 삭제되지 않았을 것이라고 생각합니다.Magento에서 리뷰 SQL을 복원하는 방법
이제 데이터베이스의 리뷰를 사이트에 표시하려면 어떻게해야합니까? review_detail 데이터베이스를 지우고 다시 가져 옵니까?
감사합니다.
실수로 Magento 매장에서 모든 리뷰를 지 웠습니다. 흥미로운 점은 PhpMyAdmin에 로그인 할 때 내 리뷰가 모두있는 review_detail 테이블을 볼 수 있기 때문에 데이터베이스에서 삭제되지 않았을 것이라고 생각합니다.Magento에서 리뷰 SQL을 복원하는 방법
이제 데이터베이스의 리뷰를 사이트에 표시하려면 어떻게해야합니까? review_detail 데이터베이스를 지우고 다시 가져 옵니까?
감사합니다.
Magento 리뷰는 세 가지 데이터베이스 테이블에 걸쳐 저장됩니다.
review
테이블은 각 리뷰 개체를 추적하여 검토 대상 (즉, 제품)에 연결하는 주 테이블입니다. 거기에 항목이 없다면 리뷰가 없습니다.
review_detail
테이블은 실제로 검토 정보가 포함 된 테이블입니다.
마지막으로 review_store
테이블은 각 Magento 저장소 인스턴스에 어떤 리뷰가 속해 있는지 추적합니다. (동일한 시스템에 Magento "store"객체를 저장한다는 의미입니다.)
내 생각에 review
테이블을 가지고 있지만 다른 것들은 삭제 된 작업입니다. 이 경우 백업없이 데이터가 사라집니다. 거기에 데이터가 남아 있다면 다른 미묘한 문제가 발생합니다. 데이터 복원의 종류가 전문가가 비전문가를 걸을 수있는 종류인지는 확실치 않습니다.
앨런 감사합니다. 귀하의 대답은 정확합니다. review_detail 테이블을 수동으로 검토 테이블에 연결할 수있었습니다. review_table에서 review_id 및 entity_pk_value를 얻을 수 있었고 검토 테이블에서 수동으로 입력했습니다. 누락 된 유일한 사항은 리뷰가 작성된 날짜이므로 제품을 주문한 시점을 확인하고 주문을받은 후 20 일 후에 고객이 리뷰를 제출할 것으로 추정하는 것입니다. 다행히 97 가지 리뷰가 있습니다 : – Giri06
rating_option_vote 테이블에서 얻은 entity_pk_value를 명확하게하기 위해서 review_table – Giri06
의 리뷰 데이터 부분은 rating_option 테이블에 저장되는 등급입니다 – zainengineer
Alan과 Giri06의 답변에 기반한 리틀 스크립트로 disapared 리뷰를 복원하십시오.
<?php
$xml = simplexml_load_file('./app/etc/local.xml', NULL, LIBXML_NOCDATA);
$db['host'] = $xml->global->resources->default_setup->connection->host;
$db['name'] = $xml->global->resources->default_setup->connection->dbname;
$db['user'] = $xml->global->resources->default_setup->connection->username;
$db['pass'] = $xml->global->resources->default_setup->connection->password;
$pref = $xml->global->resources->db->table_prefix;
mysql_connect($db['host'], $db['user'], $db['pass']) or die(mysql_error());
mysql_select_db($db['name']) or die(mysql_error());
$result = mysql_query("select `entity_pk_value`,`review_id` from `{$pref}rating_option_vote`") or die(mysql_error());
for ($i=0;$i<mysql_num_rows($result);$i++) {
$row = mysql_fetch_array($result);
$exists = mysql_query("select `entity_pk_value`,`review_id` from `{$pref}review` where `review_id`=".$row['review_id']) or die(mysql_error());
if (!mysql_num_rows($exists)) {
$query = "insert into `{$pref}review`(`entity_pk_value`,`review_id`,`entity_id`,`status_id`,`created_at`) values({$row['entity_pk_value']},{$row['review_id']},1,1,from_unixtime(unix_timestamp('2013-01-01 01:00:00')+floor(rand()*31536000)))";
echo "Inserting {$row['review_id']}<br>";
mysql_query($query) or die(mysql_error());
}
}
날짜 또는 검토는 무작위 곳
2013에서 생성 된 당신은 당신이 실수로 (SQL, 마 젠토의 xml..etc 변경을 사용하여)을 삭제하는 방법에 대한 자세한 내용을 제공 할 수 있을까요? –
실수로 Admin 영역을 통해 지 웠습니다. 일부 스팸 리뷰를 지우고 "모두 확인"버튼을 누르면 모든 것이 사라졌습니다. MyPhp에 갔다가 review_detail 테이블 아래에 여전히 있음을 알 수 있습니다. – Giri06