web-dev-qa-db-ja.com

私のサイトを1.9.3.0にアップグレードして、エラーSQLSTATE [42S22]が発生しました:列が見つかりません:1054不明な列 'catalog_product_entity_group_price.is_percent'

Magento 1.9.2.4を使用する前、今日は最新のアップデートでいくつかの重要なアップデートを使用してmagentoをアップグレードする必要があるというメッセージが表示されました。

ダウンローダーセクションから私のウェブサイトをアップグレードした後、すべてがエラーなしでうまくいったなど、index.phpのアクセス許可が666のウェブサイトに変更された後に気づく2つのことが起こりますフロントページの表示を意味しますが、製品をクリックすると表示されます次の情報を含むエラーページ。

リクエストの処理中にエラーが発生しました

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_entity_group_price.is_percent' in 'field list', query was: SELECT `catalog_product_entity_group_price`.`value_id` AS `price_id`, `catalog_product_entity_group_price`.`website_id`, `catalog_product_entity_group_price`.`all_groups`, `catalog_product_entity_group_price`.`customer_group_id` AS `cust_group`, `catalog_product_entity_group_price`.`value` AS `price`, `catalog_product_entity_group_price`.`is_percent` FROM `catalog_product_entity_group_price` WHERE (entity_id='84') AND (website_id = 0)

Trace:
    #0 /home/MyWebsite/public_html/app/Mage.php(463): Mage_Core_Model_Config->getModelInstance('eav/entity_attr...', 'SQLSTATE[42S22]...')

   #1 /home/MyWebsite/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(661): Mage::getModel('eav/entity_attr...', 'SQLSTATE[42S22]...')
   #2 /home/MyWebsite/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(1641): Mage_Eav_Model_Entity_Abstract->walkAttributes('backend/afterLo...', Arr

彼らはそれが安定している、またはこのエラーを解決できないと言っているので、バックアップを取得しなかったので、ロールバックする方法がわかりません。

前もって感謝します

17
Naveed

var/cache/の内容を削除

将来的には、更新を実行する前に、コンパイラ、すべてのインデックス、およびすべてのキャッシュを必ずオフにしてください。

起こったことは、設定キャッシュがまだアクティブであり、データベースの変更が必要であることをMagentoが検出できないことです。

35
Ext3h

この問題は、テーブルis_percentcatalog_product_entity_group_priceという名前の列がないために発生します。

Magento 1.9.3には、データベースにその列を作成するアップグレードファイルが含まれています。ファイルは次の場所にあります:app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.4-1.6.0.0.19.1.5.php

キャッシュが有効になっていると、インストーラーはアップグレードスクリプトを実行できないため、OPからエラーが報告されます。アップグレードスクリプトが失敗するもう1つの原因は、FTP経由ですべてのファイルがアップロードされる前にフロントエンドまたはバックエンドを更新した場合です。

キャッシュをフラッシュしても問題が解決しない場合は(Redisなどの外部キャッシュを必ず更新してください)、次のことを試してください。

1)core_resourceテーブルを開きます

2)catalog_setup行を探します

3)versionおよびdata_versionsの現在の値が1.6.0.0.19.1.5の場合、両方の値を1.6.0.0.19.1.2に変更して、フロントエンドの任意のページを更新します。

これにより、Magentoはアップグレードスクリプトを再実行し、データベースに欠落している列を作成します。

Versionおよびdata_versionの値が1.6.0.0.19.1.2の場合、キャッシュを適切にフラッシュしていません。

15

フォルダパス「var/cache /」からすべてのファイル/フォルダを削除します

アップグレードを開始する前に、キャッシュを無効にしてください。

3
naveenos

私にとって、問題はRedisキャッシュでした。 Redisが有効になっているかどうか不明な場合は、app/etc/local.xmlファイルを確認してください。

Redisキャッシュをフラッシュするには:

redis-cli flushall 

それでうまくいきました。

2
tgrafixx

テーブルが存在することを確認してください。

このテーブル(sales_bestsellers_aggregated_yearly)を確認してください。weater 'product_type_id'列が含まれています。 「product_type_id」列がテーブルにある場合、キャッシュのインデックスを再作成して更新します。 「product_type_id」列がそのテーブルにない場合は、添付されている画像のような構造を作成する必要があります。

Database view sales_bestsellers_aggregated_yearly

0
TonkBerlin