eileenmcnaughton / nz.co.fuzion.omnipaymultiprocessor

Omnipay Multi Processor Payment Processor For CiviCRM
Other
13 stars 44 forks source link

DB error on installation of the extension #123

Closed cray146 closed 5 years ago

cray146 commented 5 years ago

Hi,

I'm getting a DB error (nativecode=1347 ** 'civicrm_payment_processor_nl_NL' is not BASE TABLE) when I try to install the CiviCRM OmniPay Multiprocessor on a multilanguage Drupal 7/CiviCRM 5.15.0 setup.

The server is still at PHP5.6 so I'm using v2.5 of the extension (more recent versions require 7.1).

Some background:

But then I run into the 'civicrm_payment_processor_nl_NL' is not BASE TABLE error trying to install the Omnipay Multiprocessor.

The backtrace is:

Jul 12 12:05:39  [info] $Fatal Error Details = Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => exceptionHandler
        )

    [code] => -1
    [message] => DB Error: unknown error
    [mode] => 16
    [debug_info] => 
    ALTER TABLE `civicrm_payment_processor_nl_NL`
    CHANGE COLUMN `signature` `signature` LONGTEXT NULL DEFAULT NULL;
   [nativecode=1347 ** 'civi.civicrm_payment_processor_nl_NL' is not BASE TABLE]
    [type] => DB_Error
    [user_info] => 
    ALTER TABLE `civicrm_payment_processor_nl_NL`
    CHANGE COLUMN `signature` `signature` LONGTEXT NULL DEFAULT NULL;
   [nativecode=1347 ** 'civi.civicrm_payment_processor_nl_NL' is not BASE TABLE]
    [to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="
    ALTER TABLE `civicrm_payment_processor_nl_NL`
    CHANGE COLUMN `signature` `signature` LONGTEXT NULL DEFAULT NULL;
   [nativecode=1347 ** 'civi.civicrm_payment_processor_nl_NL' is not BASE TABLE]"]
)

Jul 12 12:05:39  [info] $backTrace = #0 /app/sites/all/modules/civicrm/CRM/Core/Error.php(952): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 [internal function](): CRM_Core_Error::exceptionHandler(Object(DB_Error))
#2 /app/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): call_user_func((Array:2), Object(DB_Error))
#3 /app/sites/all/modules/civicrm/packages/DB.php(985): PEAR_Error->__construct("DB Error: unknown error", -1, 16, (Array:2), "\n    ALTER TABLE `civicrm_payment_process
or_nl_NL`\n    CHANGE COLUMN `signa...")
#4 /app/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-1, 16, (Array:2), "\n    ALTER TABLE `civicrm_payment_processor
_nl_NL`\n    CHANGE COLUMN `signa...")
#5 [internal function](): PEAR->_raiseError(Object(DB_mysqli), NULL, -1, NULL, NULL, "\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...", 
"DB_Error", TRUE)
#6 /app/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(224): call_user_func_array((Array:2), (Array:8))
#7 /app/sites/all/modules/civicrm/packages/DB/common.php(1907): PEAR->__call("raiseError", (Array:7))
#8 /app/sites/all/modules/civicrm/packages/DB/common.php(1907): PEAR->raiseError(NULL, -1, NULL, NULL, "\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE C
OLUMN `signa...", "DB_Error", TRUE)
#9 /app/sites/all/modules/civicrm/packages/DB/mysqli.php(933): DB_common->raiseError(-1, NULL, NULL, NULL, "1347 ** 'civi.civicrm_payment_processor_nl_NL' is not BASE TA
BLE")
#10 /app/sites/all/modules/civicrm/packages/DB/mysqli.php(403): DB_mysqli->mysqliRaiseError()
#11 /app/sites/all/modules/civicrm/packages/DB/common.php(1216): DB_mysqli->simpleQuery("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...
")
#12 /app/sites/all/modules/civicrm/packages/DB/DataObject.php(2415): DB_common->query("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...")
#13 /app/sites/all/modules/civicrm/packages/DB/DataObject.php(1607): DB_DataObject->_query("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa
...")
#14 /app/sites/all/modules/civicrm/CRM/Core/DAO.php(439): DB_DataObject->query("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...")
#15 /app/sites/all/modules/civicrm/CRM/Core/DAO.php(1414): CRM_Core_DAO->query("\n    ALTER TABLE `civicrm_payment_processor`\n    CHANGE COLUMN `signature` ...", TRUE)
#16 /app/civicrm-extensions/nz.co.fuzion.omnipaymultiprocessor/omnipaymultiprocessor.php(34): CRM_Core_DAO::executeQuery("\n    ALTER TABLE `civicrm_payment_processor`\n    CHANGE COLUMN `signature` ...")
#17 /app/sites/all/modules/civicrm/CRM/Extension/Manager/Module.php(76): omnipaymultiprocessor_civicrm_install()
#18 /app/sites/all/modules/civicrm/CRM/Extension/Manager/Module.php(48): CRM_Extension_Manager_Module->callHook(Object(CRM_Extension_Info), "install")
#19 /app/sites/all/modules/civicrm/CRM/Extension/Manager.php(251): CRM_Extension_Manager_Module->onPreInstall(Object(CRM_Extension_Info))
#20 /app/sites/all/modules/civicrm/api/v3/Extension.php(58): CRM_Extension_Manager->install((Array:1))
#21 /app/sites/all/modules/civicrm/Civi/API/Provider/MagicFunctionProvider.php(101): civicrm_api3_extension_install((Array:2))
#22 /app/sites/all/modules/civicrm/Civi/API/Kernel.php(168): Civi\API\Provider\MagicFunctionProvider->invoke((Array:9))
#23 /app/sites/all/modules/civicrm/Civi/API/Kernel.php(99): Civi\API\Kernel->runRequest((Array:7))
#24 /app/sites/all/modules/civicrm/api/api.php(43): Civi\API\Kernel->runSafe("Extension", "install", (Array:2))
#25 /app/sites/all/modules/civicrm/CRM/Admin/Form/Extensions.php(189): civicrm_api3("Extension", "install", (Array:1))
#26 /app/sites/all/modules/civicrm/CRM/Core/Form.php(490): CRM_Admin_Form_Extensions->postProcess()
#27 /app/sites/all/modules/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
#28 /app/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Admin_Form_Extensions), "next", "Next")
#29 /app/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Admin_Form_Extensions), "next")
#30 /app/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Admin_Form_Extensions), "next")
#31 /app/sites/all/modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
#32 /app/sites/all/modules/civicrm/CRM/Core/Page/Basic.php(411): CRM_Core_Controller->run()
#33 /app/sites/all/modules/civicrm/CRM/Core/Page/Basic.php(156): CRM_Core_Page_Basic->edit(1, NULL)
#34 /app/sites/all/modules/civicrm/CRM/Admin/Page/Extensions.php(121): CRM_Core_Page_Basic->run()
#35 /app/sites/all/modules/civicrm/CRM/Core/Invoke.php(311): CRM_Admin_Page_Extensions->run((Array:3), NULL)
#36 /app/sites/all/modules/civicrm/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem((Array:16))
#37 /app/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#38 /app/sites/all/modules/civicrm/drupal/civicrm.module(444): CRM_Core_Invoke::invoke((Array:3))
#39 [internal function](): civicrm_invoke("admin", "extensions")
#40 /app/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:2))
Jul 12 12:05:39  [info] $backTrace = #0 /app/sites/all/modules/civicrm/CRM/Core/Error.php(952): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 [internal function](): CRM_Core_Error::exceptionHandler(Object(DB_Error))
#2 /app/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): call_user_func((Array:2), Object(DB_Error))
#3 /app/sites/all/modules/civicrm/packages/DB.php(985): PEAR_Error->__construct("DB Error: unknown error", -1, 16, (Array:2), "\n    ALTER TABLE `civicrm_payment_process
or_nl_NL`\n    CHANGE COLUMN `signa...")
#4 /app/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-1, 16, (Array:2), "\n    ALTER TABLE `civicrm_payment_processor
_nl_NL`\n    CHANGE COLUMN `signa...")
#5 [internal function](): PEAR->_raiseError(Object(DB_mysqli), NULL, -1, NULL, NULL, "\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...", 
"DB_Error", TRUE)
#6 /app/sites/all/modules/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(224): call_user_func_array((Array:2), (Array:8))
#7 /app/sites/all/modules/civicrm/packages/DB/common.php(1907): PEAR->__call("raiseError", (Array:7))
#8 /app/sites/all/modules/civicrm/packages/DB/common.php(1907): PEAR->raiseError(NULL, -1, NULL, NULL, "\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE C
OLUMN `signa...", "DB_Error", TRUE)
#9 /app/sites/all/modules/civicrm/packages/DB/mysqli.php(933): DB_common->raiseError(-1, NULL, NULL, NULL, "1347 ** 'civi.civicrm_payment_processor_nl_NL' is not BASE TA
BLE")
#10 /app/sites/all/modules/civicrm/packages/DB/mysqli.php(403): DB_mysqli->mysqliRaiseError()
#11 /app/sites/all/modules/civicrm/packages/DB/common.php(1216): DB_mysqli->simpleQuery("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...
")
#12 /app/sites/all/modules/civicrm/packages/DB/DataObject.php(2415): DB_common->query("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...")
#13 /app/sites/all/modules/civicrm/packages/DB/DataObject.php(1607): DB_DataObject->_query("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa
...")
#14 /app/sites/all/modules/civicrm/CRM/Core/DAO.php(439): DB_DataObject->query("\n    ALTER TABLE `civicrm_payment_processor_nl_NL`\n    CHANGE COLUMN `signa...")
#15 /app/sites/all/modules/civicrm/CRM/Core/DAO.php(1414): CRM_Core_DAO->query("\n    ALTER TABLE `civicrm_payment_processor`\n    CHANGE COLUMN `signature` ...", TRUE)
#16 /app/civicrm-extensions/nz.co.fuzion.omnipaymultiprocessor/omnipaymultiprocessor.php(34): CRM_Core_DAO::executeQuery("\n    ALTER TABLE `civicrm_payment_processor`\n    CHANGE COLUMN `signature` ...")
#17 /app/sites/all/modules/civicrm/CRM/Extension/Manager/Module.php(76): omnipaymultiprocessor_civicrm_install()
#18 /app/sites/all/modules/civicrm/CRM/Extension/Manager/Module.php(48): CRM_Extension_Manager_Module->callHook(Object(CRM_Extension_Info), "install")
#19 /app/sites/all/modules/civicrm/CRM/Extension/Manager.php(251): CRM_Extension_Manager_Module->onPreInstall(Object(CRM_Extension_Info))
#20 /app/sites/all/modules/civicrm/api/v3/Extension.php(58): CRM_Extension_Manager->install((Array:1))
#21 /app/sites/all/modules/civicrm/Civi/API/Provider/MagicFunctionProvider.php(101): civicrm_api3_extension_install((Array:2))
#22 /app/sites/all/modules/civicrm/Civi/API/Kernel.php(168): Civi\API\Provider\MagicFunctionProvider->invoke((Array:9))
#23 /app/sites/all/modules/civicrm/Civi/API/Kernel.php(99): Civi\API\Kernel->runRequest((Array:7))
#24 /app/sites/all/modules/civicrm/api/api.php(43): Civi\API\Kernel->runSafe("Extension", "install", (Array:2))
#25 /app/sites/all/modules/civicrm/CRM/Admin/Form/Extensions.php(189): civicrm_api3("Extension", "install", (Array:1))
#26 /app/sites/all/modules/civicrm/CRM/Core/Form.php(490): CRM_Admin_Form_Extensions->postProcess()
#27 /app/sites/all/modules/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
#28 /app/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Admin_Form_Extensions), "next", "Next")
#29 /app/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Admin_Form_Extensions), "next")
#30 /app/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Admin_Form_Extensions), "next")
#31 /app/sites/all/modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
#32 /app/sites/all/modules/civicrm/CRM/Core/Page/Basic.php(411): CRM_Core_Controller->run()
#33 /app/sites/all/modules/civicrm/CRM/Core/Page/Basic.php(156): CRM_Core_Page_Basic->edit(1, NULL)
#34 /app/sites/all/modules/civicrm/CRM/Admin/Page/Extensions.php(121): CRM_Core_Page_Basic->run()
#35 /app/sites/all/modules/civicrm/CRM/Core/Invoke.php(311): CRM_Admin_Page_Extensions->run((Array:3), NULL)
#36 /app/sites/all/modules/civicrm/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem((Array:16))
#37 /app/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#38 /app/sites/all/modules/civicrm/drupal/civicrm.module(444): CRM_Core_Invoke::invoke((Array:3))
#39 [internal function](): civicrm_invoke("admin", "extensions")
#40 /app/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:2))

I doubt that any table alter is needed since the signature field in both base table and views is already of type LONGTEXT. Would it be okay to comment out both alter table statements from the install hook of the extension?

/**
 * Implementation of hook_civicrm_install
 */
function omnipaymultiprocessor_civicrm_install() {
  CRM_Core_DAO::executeQuery("
    ALTER TABLE `civicrm_payment_processor`
    CHANGE COLUMN `signature` `signature` LONGTEXT NULL DEFAULT NULL;
  ");
  $logExists = CRM_Core_DAO::singleValueQuery("SHOW TABLES LIKE 'log_civicrm_payment_processor'");
  if ($logExists) {
    CRM_Core_DAO::executeQuery("
    ALTER TABLE `log_civicrm_payment_processor`
    CHANGE COLUMN `signature` `signature` LONGTEXT NULL DEFAULT NULL;
  ");
  }
  return _omnipaymultiprocessor_civix_civicrm_install();
}

Thanks in advance,

c.

eileenmcnaughton commented 5 years ago

@cray146 yes - that change was upstreamed a long time ago so we can remove it from this extension

eileenmcnaughton commented 5 years ago

check #124