Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DB error on installation of the extension #123

Closed
cray146 opened this issue Jul 12, 2019 · 2 comments
Closed

DB error on installation of the extension #123

cray146 opened this issue Jul 12, 2019 · 2 comments

Comments

@cray146
Copy link

cray146 commented Jul 12, 2019

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:

  • I've recently upgraded CiviCRM v4.6.38 to v5.15.0. That upgrade failed initially (DB error civicrm_payment_processor_nl_NL table does not exist) but succeeded eventually after applying a workaround. Cfr: https://lab.civicrm.org/dev/drupal/issues/74#note_20204
  • After the upgrade I've rebuild the multilanguage scheme using drush cvapi System.rebuildmultilingualschema. This seems to have created the missing views for the civicrm_payment_processor table.

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
Copy link
Owner

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

eileenmcnaughton added a commit that referenced this issue Jul 12, 2019
@eileenmcnaughton
Copy link
Owner

check #124

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants