문제

나는 여기에서 비슷한 문제에 대해 읽었지만 그것은 내 것과 어떻게 든 다른 것 같습니다.

폼 빌더 플러그인을 개발했으며 테스트 서버와 내가 가진 다른 개인 서버에서 완벽하게 작동했습니다.문제는 내가 다른 고객 젠토 숍에이 업로드 할 때,나는 다음과 같은 오류 메시지가"양식을 추가"할 수 없습니다:

[42 초 02]:기본 테이블 또는 뷰를 찾을 수 없음:1146 표'123.쿼리가 존재하지 않습니다.:2018 년 11 월 15 일(금)~2018 년 11 월 15 일(금)

나는 왜이 작업을 수행하는지 알지 못하며,내 테스트 서버 마젠토는 내 고객을 위해 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%';

버전이 구성과 동일한 경우.그런 다음 실행되지 않은 이유가 될 수 있습니다.

업데이트 스크립트를 사용하지 않는 경우 이 스크립트를 사용해야 하는 좋은 이유이지만 지금은 수동으로 테이블을 만들 수 있습니다.테이블을 만들려면 테이블이 있는 테스트 서버에서 이 쿼리를 실행할 수 있습니다:

SHOW CREATE TABLE gjd4_formbuilder_forms;

그런 다음 결과를 사용하여 다른 서버에 테이블을 만듭니다.그 후 캐시를 플러시하고 다시 시도하십시오.

에 의해 코멘트에 언급 한 바와 같이 마지막으로@텍 잼는 데시벨 접두사를 확인.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top