飞云网络官方博客飞云网络官方博客

飞云网络官方博客
记录网站建设中的技术解决方案

【已解决】Magento2.3迁移网站程序后,MYSQL里少了inventory_stock_1这个视图的解决方法

一、错误描述

今天迁移了一个magento 2.3 的程序到宝塔面板里,后台正常访问,前台访问的时候出现了如下的错误提示

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magento23_test.inventory_stock_1' doesn't exist, query was: SELECT `e`.*, `selection`.*, `stock_status_index`.`is_salable` FROM `catalog_product_entity` AS `e`

二、原因

迁移过来后,当前服务器的数据库可能少了创建视图的权限,所以会提示少了个数据库表,所以需要创建下这个视图

三、解决方法

使用如下代码,在MYSQL的SQL里执行下代码

CREATE
OR REPLACE
VIEW `inventory_stock_1` AS select
    distinct `legacy_stock_status`.`product_id` AS `product_id`,
    `legacy_stock_status`.`website_id` AS `website_id`,
    `legacy_stock_status`.`stock_id` AS `stock_id`,
    `legacy_stock_status`.`qty` AS `quantity`,
    `legacy_stock_status`.`stock_status` AS `is_salable`,
    `product`.`sku` AS `sku`from
    ( `cataloginventory_stock_status` `legacy_stock_status`join `catalog_product_entity` `product` on        (( `legacy_stock_status`.`product_id` = `product`.`entity_id` )));