Миграция сайта и попытка восстановления базы данных из файлов на сбойном компьютере - PullRequest
0 голосов
/ 21 февраля 2020

Я уверен, что это длинный путь, но я преобразовал базу данных резервного копирования Processwire сайта из файлов MyISAM в SQL через RebaseData API PHP и am получая этот ответ, пытаясь получить доступ к сайту сейчас:

Fatal error: Exception: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'boo_pw.pages.parent_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (in /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php line 390) #0 /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php(390): PDOStatement->execute() #1 /Users/boo/WWW/booa/wire/core/PagesLoader.php(600): ProcessWire\WireDatabasePDO->execute(Object(PDOStatement)) #2 /Users/boo/WWW/booa/wire/core/Pages.php(154): ProcessWire\PagesLoader->getById(Array) #3 /Users/boo/WWW/booa/wire/core/ProcessWire.php(335): ProcessWire\Pages->init() #4 /Users/boo/WWW/booa/wire/core/ProcessWire.php(295): ProcessWire\ProcessWire->initVar('pages', Object(ProcessWire\Pages)) #5 /Users/boo/WWW/booa/wire/core/ProcessWire.php(118): ProcessWire\ProcessWire->load(Object(ProcessWire\Config)) #6 /Users/boo/WWW/booa/index.php(52): ProcessWire\ProcessWire->__const in /Users/boo/WWW/booa/index.php on line 64
Error: Exception: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'boo_pw.pages.parent_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (in /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php line 390)

#0 /Users/boo/WWW/booa/wire/core/WireDatabasePDO.php(390): PDOStatement->execute()
#1 /Users/boo/WWW/booa/wire/core/PagesLoader.php(600): ProcessWire\WireDatabasePDO->execute(Object(PDOStatement))
#2 /Users/boo/WWW/booa/wire/core/Pages.php(154): ProcessWire\PagesLoader->getById(Array)
#3 /Users/boo/WWW/booa/wire/core/ProcessWire.php(335): ProcessWire\Pages->init()
#4 /Users/boo/WWW/booa/wire/core/ProcessWire.php(295): ProcessWire\ProcessWire->initVar('pages', Object(ProcessWire\Pages))
#5 /Users/boo/WWW/booa/wire/core/ProcessWire.php(118): ProcessWire\ProcessWire->load(Object(ProcessWire\Config))
#6 /Users/boo/WWW/booa/index.php(52): ProcessWire\ProcessWire->__const

This error message was shown because: site is in debug mode. ($config->debug = true; => /site/config.php). Error has been logged.

Может кто-нибудь сказать мне, что это значит?

Теперь на nginx, через Laravel Валет ....., если это актуально. Не уверен в предыдущей версии MySQL, которую я использовал, но я просто установил ее здесь бесплатно sh.

Я запустил SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); и теперь получаю:

User Error

Exception: Template 'home' is used by the homepage and thus must manage access (in /Users/boo/WWW/booa/wire/core/Templates.php line 143)

#0 [internal function]: ProcessWire\Templates->___save(Object(ProcessWire\Template))
#1 /Users/boo/WWW/booa/wire/core/Wire.php(347): call_user_func_array(Array, Array)
#2 /Users/boo/WWW/booa/wire/core/WireHooks.php(548): ProcessWire\Wire->_callMethod('___save', Array)
#3 /Users/boo/WWW/booa/wire/core/Wire.php(370): ProcessWire\WireHooks->runHooks(Object(ProcessWire\Templates), 'save', Array)
#4 /Users/boo/WWW/booa/wire/core/Template.php(753): ProcessWire\Wire->__call('save', Array)
#5 /Users/boo/WWW/booa/wire/core/Template.php(810): ProcessWire\Template->save()
#6 /Users/boo/WWW/booa/wire/core/WireHooks.php(619): ProcessWire\Template->hookFinished(Object(ProcessWire\HookEvent))
#7 /Users/boo/WWW/booa/wire/core/Wire.php(370): ProcessWire\WireHooks->runHooks(Object(ProcessWire\ProcessWire), 'finished', Array)
#8 /Users/boo/WWW/booa/wire/core/ProcessWire.php(460): ProcessWire\Wire->__call('finished', Array)
#9 /Users/boo/WWW/booa/wire/core/ProcessWire.php(365): ProcessWire\ProcessWire->__call('finished', Array)
#10 /Users/boo/WWW/booa/wire/modules/Process/ProcessPageView.module(253): ProcessWire\ProcessWire->setStatus(16)
#11 [internal function]: ProcessWire\ProcessPageView->___finished()
#12 /Users/boo/WWW/booa/wire/core/Wire.php(347): call_user_func_array(Array, Array)
#13 /Users/boo/WWW/booa/wire/core/WireHooks.php(548): ProcessWire\Wire->_callMethod('___finished', Array)
#14 /Users/boo/WWW/booa/wire/core/Wire.php(370): ProcessWire\WireHooks->runHooks(Object(ProcessWire\ProcessPageView), 'finished', Array)
#15 /Users/boo/WWW/booa/index.php(56): ProcessWire\Wire->__call('finished', Array)
#16 /Users/boo/.composer/vendor/laravel/valet/server.php(158): require('/Users/boo/WWW/m...')
#17 {main} search►
Source file
File: /Users/boo/WWW/booa/index.php:64

54:        $wire->wire('process', $process); 
55:        echo $process->execute($config->internal);
56:        $config->internal ? $process->finished() : extract($wire->wire('all')->getArray());
57:        
58:    } catch(\Exception $e) {
59:        // Formulate error message and send to the error handler
60:        if($process) $process->failed($e);
61:        $wire ? $wire->trackException($e) : $config->trackException($e);
62:        $errorMessage = "Exception: " . $e->getMessage() . " (in " . $e->getFile() . " line " . $e->getLine() . ")";
63:        if($config->debug || ($wire && $wire->user && $wire->user->isSuperuser())) $errorMessage .= "\n\n" . $e->getTraceAsString();
64:        trigger_error($errorMessage, E_USER_ERROR);
65:    }
66:    
67:    
Call stack
/Users/boo/WWW/booa/index.php:64 source  trigger_error(arguments)

/Users/boo/.composer/vendor/laravel/valet/server.php:158 source  require(arguments)

Другой сайт Я также пытался мигрировать с почти пустой базой данных [ProcessWire], которая ранее возвращала

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Error has been logged.

, теперь возвращает 404 Not Found поверх этого.

1 Ответ

0 голосов
/ 21 февраля 2020

ProcessWire требует удаления параметра MySQL ONLY_FULL_GROUP_BY: https://github.com/processwire/processwire/blob/649d2569abc10bac43e98ca98db474dd3d6603ca/wire/config.php#L975

, но похоже, что вы уже позаботились об этом.

Это ( https://processwire.com/talk/topic/19585-solved-error-message-acces-home-template/) может принять исключение шаблона, которое вы получаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...