Migrate from Drupal to WordPress - 'DB Error: no such table'

Sep 07 2020

Estou seguindo a metodologia em https://docs.civicrm.org/sysadmin/en/latest/misc/switching-cms/drupal-to-wordpress/para migrar do Drupal para o WordPress. Após importar as tabelas do banco de dados para o site WordPress, recebo o erro DB Error: no such tableno navegador ao tentar acessar a página inicial do CiviCRM.

No wp-content/uploads/civicrm/ConfigAndLog/CiviCRM.f00.log, vejo o seguinte:

Sep 06 22:24:15  [error] $Fatal Error Details = Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

    [code] => -18
    [message] => DB Error: no such table
    [mode] => 16
    [debug_info] => INSERT INTO civicrm_setting (`component_id`,`contact_id`,`created_date`,`created_id`,`domain_id`,`id`,`is_domain`,`name`,`value`) VALUES
(NULL,NULL,"20200906222415",NULL,"1",NULL,"1","wpLoadPhp","s:34:\"/home/singersin/www/wp/wp-load.php\";")
 [nativecode=1146 ** Table 'singersin_wp1234.log_civicrm_setting' doesn't exist]
    [type] => DB_Error
    [user_info] => INSERT INTO civicrm_setting (`component_id`,`contact_id`,`created_date`,`created_id`,`domain_id`,`id`,`is_domain`,`name`,`value`) VALUES
(NULL,NULL,"20200906222415",NULL,"1",NULL,"1","wpLoadPhp","s:34:\"/home/singersin/www/wp/wp-load.php\";")
 [nativecode=1146 ** Table 'singersin_wp1234.log_civicrm_setting' doesn't exist]
    [to_string] => [db_error: message="DB Error: no such table" code=-18 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO civicrm_setting (`component_id`,`contact_id`,`created_date`,`created_id`,`domain_id`,`id`,`is_domain`,`name`,`value`) VALUES
(NULL,NULL,"20200906222415",NULL,"1",NULL,"1","wpLoadPhp","s:34:\"/home/singersin/www/wp/wp-load.php\";")
 [nativecode=1146 ** Table 'singersin_wp1234.log_civicrm_setting' doesn't exist]"]
)

O que me intriga: por que está procurando uma mesa chamada log_civicrm_settingquando está fazendo INSERT INTO civicrm_setting? Existe uma tabela chamada civicrm_setting, todas as tabelas CiviCRM são prefixadas com civicrm_nesta instalação.

Respostas

4 ParvezSaleh Sep 07 2020 at 06:19

Isso se deve ao fato de que você provavelmente ativou o registro em seu ambiente Drupal. Portanto, a coisa mais fácil a fazer seria desligá-lo antes de migrar e ligá-lo novamente no Wordpress (Administer -> Misc -> Logging). Se você não pode fazer isso (ou ainda não funciona), então você tem alguns 'hacks' para chegar ao ponto em que você pode pelo menos chegar às configurações, incluindo descartar os gatilhos do banco de dados na tabela de configurações, e quaisquer tabelas subsequentes, até chegar à página inicial e à página de registro. Mas eu desligaria na fonte, essa é a abordagem mais fácil.