Расширение SQLSTATE[42S02]:Базовая таблица или представление не найдено:[закрыто]

magento.stackexchange https://magento.stackexchange.com//questions/75742

  •  13-12-2019
  •  | 
  •  

Вопрос

Я читал здесь о подобных проблемах, но, похоже, они чем-то отличаются от моих.

Я разработал плагин для создания форм, и он отлично работал на моем тестовом сервере и на другом частном сервере, который у меня есть.Проблема в том, что когда я загружаю это в магазин Magento другого клиента, я не могу «добавить форму», и получаю следующее сообщение об ошибке:

SQLSTATE[42S02]:Базовая таблица или представление не найдено:1146 Таблица «123.gjd4_formbuilder_forms» не существует, запрос был:ОПИСАНИЕ `gjd4_formbuilder_forms`

Я не понимаю, почему он это делает, мой тестовый сервер magentos обновлен на 100%, и то же самое для моего клиента.Как мне решить эту проблему?

Заранее спасибо, ребята, надеюсь, у вас будет хороший день.

<?php

$installer = $this;

$installer->startSetup();

$installer->run("

-- DROP TABLE IF EXISTS {$this->getTable('formbuilder_forms')};
CREATE TABLE {$this->getTable('formbuilder_forms')} (
    `forms_index` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    `title` VARCHAR(255) NOT NULL,
    `no_of_fields` INT(50) NULL DEFAULT '0',
    `status` SMALLINT(6) NOT NULL DEFAULT '2',
    `stores` TEXT NULL,
    `header_content` text NOT NULL ,
    `footer_content` text NOT NULL ,
    `success_msg` VARCHAR(255) NULL,
    `failure_msg` VARCHAR(255) NULL,
    `submit_text` VARCHAR(255) NULL,
    `in_menu` SMALLINT(6) NULL DEFAULT '0',
    `in_toplinks` SMALLINT(6) NULL DEFAULT '0',
    `title_image` VARCHAR(255) NULL,
    `bgcolor` VARCHAR(25) NULL DEFAULT '#fbfaf6',
    `created_time` DATETIME NULL DEFAULT NULL,
    `update_time` DATETIME NULL DEFAULT NULL,
    PRIMARY KEY (`forms_index`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ");

$installer->run("

-- DROP TABLE IF EXISTS {$this->getTable('formbuilder_fields')};
CREATE TABLE {$this->getTable('formbuilder_fields')} (
    `fields_index` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    `forms_index` INT(11) NOT NULL,     
    `status` SMALLINT(6) NOT NULL DEFAULT '0',
    `previous_group` VARCHAR(25) NOT NULL,
    `type` VARCHAR(25) NOT NULL,    
    `title` VARCHAR(255) NOT NULL,
    `field_id` INT(11) NOT NULL,
    `options` SMALLINT(6) NOT NULL DEFAULT '0',
    `max_characters` INT(11) NULL,
    `sort_order` INT(11) NULL,  
    `is_require` SMALLINT(6) NOT NULL DEFAULT '0',
    `is_delete` SMALLINT(6) NULL,   
    `file_extension` VARCHAR(255) NULL,
    `image_size_x` INT(11) NULL,
    `image_size_y` INT(11) NULL,    
    `previous_type` VARCHAR(25) NULL,
    `option_id` INT(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`fields_index`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ");

$installer->run("

-- DROP TABLE IF EXISTS {$this->getTable('formbuilder_fields_options')};
CREATE TABLE {$this->getTable('formbuilder_fields_options')} (
    `options_index` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    `option_id` INT(11) UNSIGNED NOT NULL,
    `fields_index` INT(11) NOT NULL,
    `is_delete` SMALLINT(6) NULL,   
    `title` VARCHAR(255) NOT NULL,
    `sort_order` INT(11) NULL,  
    PRIMARY KEY (`options_index`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ");

$installer->run("

-- DROP TABLE IF EXISTS {$this->getTable('formbuilder_records')};
CREATE TABLE {$this->getTable('formbuilder_records')} (
    `records_index` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    `forms_index` INT(11) NOT NULL,
    `customer` VARCHAR(255) NOT NULL,
    `fields_index` INT(11) NOT NULL,
    `options_index` VARCHAR(255) NULL,
    `value` text NULL,
    PRIMARY KEY (`records_index`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ");

$installer->endSetup();
Это было полезно?

Решение

Если таблицы нет, возможно, сценарий обновления не запустился по разным причинам.

Сначала проверьте с помощью этого запроса версию вашего модуля:

select * from core_resource where code like '%your_module_here%';

Если версия совпадает с версией config.xml, это может быть причиной того, что файл не запустился.

Если вы не используете сценарии обновления, это веская причина, почему вам следует их использовать, но сейчас вы можете создать таблицу вручную.Чтобы создать таблицу, вы можете запустить этот запрос на своем тестовом сервере, где существует ваша таблица:

SHOW CREATE TABLE gjd4_formbuilder_forms;

Затем используйте результат для создания таблицы на другом сервере.После этого очистите кеш и повторите попытку.

Наконец, как упоминалось в комментарии @tecjam, проверьте префиксы БД.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top