drupal 7 не ставится на sqlie3

Аватар пользователя TcKJey TcKJey 24 августа 2012 в 12:55

При установке drupal 7.15 выбираю базу sqlite указываю путь к бд, жму далее и начинают вываливаться ошибки:

Warning: Illegal string offset 'field' in UpdateQuery_sqlite->removeFieldsInCondition() (line 75 of D:\Apache2_2\htdocs\orion_dr\includes\database\sqlite\query.inc).

и

An AJAX HTTP error occurred. HTTP Result Code: 200 Debugging information follows. Path: http://localhost/Orion_dr/install.php?profile=standard&locale=en&id=1&op=do StatusText: OK ResponseText: Home | Drupal import url("http://localhost/Orion_dr/modules/system/system.theme.css?0"); import url("http://localhost/Orion_dr/modules/system/system.messages.css?0"); import url("http://localhost/Orion_dr/modules/system/system.menus.css?0"); import url("http://localhost/Orion_dr/modules/system/system.base.css?0"); import url("http://localhost/Orion_dr/modules/comment/comment.css?0"); import url("http://localhost/Orion_dr/modules/field/theme/field.css?0"); import url("http://localhost/Orion_dr/modules/node/node.css?0"); import url("http://localhost/Orion_dr/modules/user/user.css?0"); import url("http://localhost/Orion_dr/modules/system/system.admin.css?0"); import url("http://localhost/Orion_dr/modules/system/system.maintenance.css?0"); import url("http://localhost/Orion_dr/themes/seven/reset.css?0"); import url("http://localhost/Orion_dr/themes/seven/style.css?0"); Home Installation tasksChoose profile(done)Choose language(done)Verify requirements(done)Set up database(done)Install profile(active)Configure siteFinished SQLSTATE[HY000]: General error: 1 no such table: watchdog

Версия php 5.4.2.0 , php_sqlite3 версия 5.4.2.0. Доступ к папке и файлу базы тоже разрешен.Помогите разобраться в чем проблема?

Комментарии

Аватар пользователя alex_shut alex_shut 24 августа 2012 в 15:53

уже мелькала подобная тема. ТС тогда так и не добился адекватной работы на лайте, перешел на обычный мускул.
Нафига тебе лайт?
почитал давеча статью, и решил что профит сомнителен. имхо

Аватар пользователя TcKJey TcKJey 24 августа 2012 в 16:45

у нас выделенный сервер для одного приложения и туда не желательно ставить что то лишнее, например mysql. А мне нужно веб интерфейс сделать к одной базенке, поэтому хотел его в связке drupal + sqlite реализовать.

Аватар пользователя alex_shut alex_shut 24 августа 2012 в 16:51

"TcKJey" wrote:
веб интерфейс сделать к одной базенке

Не окажется проще написать с нуля?

Аватар пользователя TcKJey TcKJey 24 августа 2012 в 17:30

может быть и проще, но уже все сделано на локальной машине (друпал + mysql), а когда стал вопрос о переносе на сервер, оказалось что mysql там не установлен и ставить не желательно его. Вот и хотелось бы подружить друпал с sqlitе, конечно если не получится то с нуля напишу интерфейс.

Аватар пользователя alex_shut alex_shut 24 августа 2012 в 17:47

"TcKJey" wrote:

Ну так с этого и нужно начинать. Что пилил на мучкуле и нуна на лайт перевести))
Я там выше ссылочку кинул. Почитай, там описывается вариант переноса.

Аватар пользователя Ch Ch 25 августа 2012 в 14:04

Вполне нормально работает на sqlite, только немного медленнее. Раньше были проблемы с views, сейчас всё профиксили.
Все мелкие сайты делаю на sqlite.

Аватар пользователя TcKJey TcKJey 25 августа 2012 в 21:37

как ни странно, но на домашней машине все нормально поставилось, тут версия php 5.3 система windows 7 x64. Можете проблема в том что на работе под учеткой пользователя сижу а не админа, но на папку с базой и сайтом права вроде ставлю полные

Аватар пользователя DURMAN DURMAN 30 ноября 2012 в 10:22

Эта проблема лечиться либо патчем либо простым редактором кода в файле - query.inc Wink
У меня он находиться /drupal/includes/database/sqlite/query.inc
Вместо:

protected function removeFieldsInCondition(&$fields, QueryConditionInterface $condition) {
    foreach ($condition->conditions() as $child_condition) {
        if ($child_condition['field'] instanceof QueryConditionInterface) {
          $this->removeFieldsInCondition($fields, $child_condition['field']);
        }
        else {
          unset($fields[$child_condition['field']]);
        }
    }
  }

Получаем:

protected function removeFieldsInCondition(&$fields, QueryConditionInterface $condition) {
    foreach ($condition->conditions() as $child_condition) {
      if (isset($child_condition['field'])) {
        if ($child_condition['field'] instanceof QueryConditionInterface) {
          $this->removeFieldsInCondition($fields, $child_condition['field']);
        }
        else {
          unset($fields[$child_condition['field']]);
        }
      }
    }
  }

Всё это уже сказано ещё в мае 2012-го здесь.

Аватар пользователя Ch Ch 2 декабря 2012 в 22:00

Этот баг проявляется только на PHP 5.4. PHP 5.3 и PHP 5.2 работают без проблем.