2016-07-22 5 views
1

Я пытаюсь создать сайт DKAN через drush, и в настоящее время у меня возникают проблемы с установкой сайта. Я загрузил drush, dkan и mysql, а сервер mysql в настоящее время работает с версией mysql Ver 14.14 Distrib 5.7.13, for osx10.11 (x86_64) using EditLine wrapper.Drush site-install dkan не работает - «Все части PRIMARY KEY должны быть NOT NULL»

Скажем, пароль mysql для [email protected]: passw0rd. Затем я запускаю команду drush site-install dkan --db-url="mysql://root:[email protected]/dkandb" изнутри каталога dkan/webroot.

Установка начинается с «Запуск установки Drupal. Это занимает некоторое время». Но через минуту или около того, я получаю следующее исключение:

exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1171 All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead' in /Users/Nicholas/dkan/webroot/includes/database/database.inc:2204 

Наряду с трассировки стека в 25 пункт:

Stack trace: 
#0 /Users/Nicholas/dkan/webroot/includes/database/database.inc(2204): PDOStatement->execute(Array) 
#1 /Users/Nicholas/dkan/webroot/includes/database/database.inc(683): DatabaseStatementBase->execute(Array, Array) 
#2 /Users/Nicholas/dkan/webroot/includes/database/schema.inc(664): DatabaseConnection->query('CREATE TABLE {p...') 
#3 /Users/Nicholas/dkan/webroot/includes/database/database.inc(2753): DatabaseSchema->createTable('panelizer_entit...', Array) 
#4 /Users/Nicholas/dkan/webroot/includes/common.inc(7092): db_create_table('panelizer_entit...', Array) 
#5 /Users/Nicholas/dkan/webroot/includes/module.inc(479): drupal_install_schema('panelizer') 
#6 /Users/Nicholas/dkan/webroot/includes/install.core.inc(1609): module_enable(Array, false) 
#7 [internal function]: _install_module_batch('panelizer', 'Panelizer', Array) 
#8 /Users/Nicholas/dkan/webroot/includes/batch.inc(284): call_user_func_array('_install_module...', Array) 
#9 /Users/Nicholas/dkan/webroot/includes/form.inc(4714): _batch_process() 
#10 /Users/Nicholas/dkan/webroot/includes/install.core.inc(444): batch_process('install.php?pro...', 'http://default/...') 
#11 /Users/Nicholas/dkan/webroot/includes/install.core.inc(339): install_run_task(Array, Array) 
#12 /Users/Nicholas/dkan/webroot/includes/install.core.inc(77): install_run_tasks(Array) 
#13 /usr/local/Cellar/drush/HEAD-c967802/libexec/includes/drush.inc(725): install_drupal(Array) 
#14 /usr/local/Cellar/drush/HEAD-c967802/libexec/includes/drush.inc(711): drush_call_user_func_array('install_drupal', Array) 
#15 /usr/local/Cellar/drush/HEAD-c967802/libexec/commands/core/drupal/site_install_7.inc(82): drush_op('install_drupal', Array) 
#16 /usr/local/Cellar/drush/HEAD-c967802/libexec/commands/core/site_install.drush.inc(245): drush_core_site_install_version('dkan', Array) 
#17 [internal function]: drush_core_site_install('dkan') 
#18 /usr/local/Cellar/drush/HEAD-c967802/libexec/includes/command.inc(366): call_user_func_array('drush_core_site...', Array) 
#19 /usr/local/Cellar/drush/HEAD-c967802/libexec/includes/command.inc(217): _drush_invoke_hooks(Array, Array) 
#20 [internal function]: drush_command('dkan') 
#21 /usr/local/Cellar/drush/HEAD-c967802/libexec/includes/command.inc(185): call_user_func_array('drush_command', Array) 
#22 /usr/local/Cellar/drush/HEAD-c967802/libexec/lib/Drush/Boot/BaseBoot.php(73): drush_dispatch(Array) 
#23 /usr/local/Cellar/drush/HEAD-c967802/libexec/includes/preflight.inc(88): Drush\Boot\BaseBoot->bootstrap_and_dispatch() 
#24 /usr/local/Cellar/drush/HEAD-c967802/libexec/drush.php(12): drush_main() 
#25 {main} 

Любые идеи о том, что я могу сделать, чтобы устранить ошибку SQLSTATE[42000]?

+0

делать как ошибка говорит? Вы не указали, как выглядит ваш оператор 'create', поэтому дамп стека практически бесполезен. –

+0

Какую версию PHP вы используете? Я видел очень старые ошибки PHP, которые могут вызвать это. Кроме того, вы пробовали процесс установки без очереди? Если вы собираетесь выполнять многие из этих установок, Drush является разумным инструментом, но я бы исключил его как переменную при попытке отслеживать нечетные проблемы. – acrosman

ответ

0

Какую версию DKAN вы используете? Похоже, что установка не работает на модуле панели. Существует проблема для той же вещи, с которой вы столкнулись: https://www.drupal.org/node/2659820

Вы можете попробовать прямое применение обновления там.

FYI если вы откроете билет на https://github.com/NuCivic/dkan/issues, вы получите более непосредственную поддержку от команды DKAN.

Похоже DKAN необходимо обновить до последней версии panelizer получить исправление, которое относится к ошибке https://github.com/NuCivic/dkan/blob/7.x-1.x/drupal-org.make#L110, которые они должны в следующей версии

0

Вы должны смотреть на какую таблицу MySQL пытается создать как показано здесь:

# 2 /Users/Nicholas/dkan/webroot/includes/database/schema.inc(664): DatabaseConnection-> запрос ('CREATE TABLE {р ...')

После этого выполните поиск t введите код с этим именем таблицы, чтобы найти файл .install для модуля, который устанавливает недопустимую схему.

Скорее всего, это будет необходимо, чтобы добавить это определение поля: 'not null' => TRUE,

Проверка очереди выпуск модуля первый, чтобы увидеть, если это известная проблема, или создать свой собственный, а затем опубликовать патч ,

В моем случае я столкнулся с Make Entity Path Compatible with MySQL 5.7. Вопрос Panelizer, упомянутый в ответе от 25 июля, больше не является проблемой, поскольку он был исправлен и включен в дистрибутив.