Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[final] Поддержка БД SQLite 3.0+

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

[final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Название МОДа: Поддержка БД SQLite 3.0+
Автор: Борис Бердичевский
Описание мода: Добавляет к списку используемых драйверов баз данных SQlite версии 3.0

Версия МОДа: 1.1
Протестировано для phpBB версии: 3.0.9
Пример использования МОДа: Мой Форум http://www.borisba.com/forum-php/index.php
Требуемая версия php 5.3.0 и выше (которая поддерживает SQLite 3.0 PDO)
Версия phpBB: 3.0.9

Скачать файл МОДа: SQLite3.0_MOD_5.3.x_for_309.zip
Дата и время: Thursday, December 29, 2011 22:47
Размер файла МОДа: 46,460 байт
История: 29-Dec-2011 fix of bug - queries fail because DB locked

Дополнительное исправление для русской версии:
Open: language/ru/install.php
Find
Tip: This may be a partial find and not the whole line.

Код: Выделить всё

'DLL_SQLITE'            => 'SQLite', 
Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.

Код: Выделить всё

'DLL_SQLITE_3'            => 'SQLite 3.0', 
Find
Tip: This may be a partial find and not the whole line.

Код: Выделить всё

<li>SQLite 2.8.2 и выше</li> 
Add after
Tip: Add these lines on a new blank line after the preceding line(s) to find.

Код: Выделить всё

<li>SQLite 3.0 и выше</li> 
Update from 3.0.8 to 3.0.9
Для тех, кто установил МОД на версии phpBB 3.0.8 и хочет сделать апдейт, необходимо скачать стандартный пакет апдейта, скачать мой пакет для замены SQLite3.0_MOD_update_to_309.zip и заменить из него 2 файла в стандартном пакете, после чего можно сделать стандартный апдейт. Однако правки в файлах согласно МОДу следует перепроверить, скачав новый МОД под версию 3.0.9.

Update from 3.0.9 to 3.0.10
Аналогичный пакет для апдейта на версию 3.0.10. Но файлы нужно менять другие, читайте инструкцию.
SQLite3.0_MOD_update_to_310.zip

Update to 3.0.11
Аналогичный пакет для апдейта на версию 3.0.11.
SQLite3.0_MOD_update_to_311.zip

Update to 3.0.12
Используйте вместо phpBB-3.0.11_to_3.0.12.zip
phpBB-3.0.11_to_3.0.12-SQLite3.zip

Это полная версия МОДа для 3.0.12:
http://www.borisba.com/photos/phpbb/mod ... .0-3.0.zip

Как только выйдет версия phpBB 3.1, МОД станет неактуальным. Мной уже проверен на релиз кандидатах перевод наработанной БД на версию 3.1, там будет только одна небольшая поправка в коде от меня.

От разработчика: Я задался вопросом: почему phpBB работает с устаревшей (если не сказать "допотопной") версией SQLite?
Дело в том, что до сих пор php не работал с SQLite 3.0+, только со второй, весьма старой, версией этой БД.
Я прежде всего откопал и протранслировал коды DLL (php_sqlite3.dll) и затем уже внёс модификации в phpBB для поддержки этой версии SQLite. Правда, всё это касается только MS Windows. Для Unix php_sqlite3 уже имелся, но я его не проверял.
Версии php 5.3.* имеют уже встроенную поддержку SQLIte 3.0, однако интерфейс там -- PDO -- капитально отличается от интерфейса прежнего драйвера. Для поддержки PDO мне пришлось капитально переписать файл include/db/sqlite_3.php, и именно он ныне представлен в МОДе.

МОД не предназначен для перевода действующего форума с SQLite 2.0 на SQLite 3.0, а только для установки форума с начала. Для перевода БД форума на другую версию следует установить новый форум, а затем дополнительно перевести файл БД с использованием соответствующих утилит.
Если вы уже используете этот МОД и появился патч для апгрейда версии phpBB, вы обязаны модифицировать этот патч перед использованием. Я буду выкладывать специальный пакет для модификации патча.
Выложено для 3.0.9, см. выше.


Тема на английском форуме поддержки: http://www.phpbb.com/community/viewtopi ... &t=1059695
Тема на форуме Area51: http://area51.phpbb.com/phpBB/viewtopic ... 84&t=33447
Последний раз редактировалось Борис Бердичевский 20.08.2014 12:41, всего редактировалось 59 раз.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Я опубликовал новую версию МОДа, вариант PDO, требуемая версия php 5.3.0 и выше.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Ошибка найдена, точнее, упущение.
Исправление в файле includes/functions_install.php должно быть в виде (последнее удаление из указанного ниже -- если уже правили файл):

Код: Выделить всё

Find:
         case 'sqlite':
            if (version_compare(sqlite_libversion(), '2.8.2', '<'))
            {
               $error[] = $lang['INST_ERR_DB_NO_SQLITE'];
            }
         break;

Add after:
         case 'sqlite_3':
            if (version_compare($db->sql_server_info(true), '3.0.0', '<'))
            {
               $error[] = $lang['INST_ERR_DB_NO_SQLITE'];
            }
         break;
Remove after:
         case 'sqlite_3':
            if (version_compare(sqlite3_libversion(), '3.0.0', '<'))
            {
               $error[] = $lang['INST_ERR_DB_NO_SQLITE'];
            }
         break;
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Альтаир Бергадлер
phpBB 2.0.5
Сообщения: 495
Стаж: 14 лет
Благодарил (а): 80 раз
Поблагодарили: 16 раз

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Альтаир Бергадлер »

Борис Бердичевский, сам вашим модом не пользуюсь но выражаю респект за создание и активное продвижение столь полезного компонента.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Ещё один баг: не работает Резервное копирование. Буду заниматься.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Да уж, кривые мои ручки наваяли эту белиберду в коде. :)
Исправил, завтра выложу исправленное.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Установлена последняя, исправленная версия МОДа.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Не обновляйтесь до новой версии 3.0.9, пока я не выложу исправленный файл для обновления. Всё равно вы не сумеете этого сделать! :roll:
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 12 лет 7 месяцев
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: [final] Поддержка БД SQLite 3.0+

Сообщение NiGHt-LEshiY »

Не получается начать установку форума с SQLite3, т.к. форум считает, что модуль SQLite3 "недоступен".

ОС: Debian 6 (Squeeze)
PHP: 5.3.6, собранный из исходников
phpBB: 3.0.9

Несколько раз пробовал устанавливать мод сначала, мало ли, где-то мог и ошибиться. Скачал чистый phpBB 3.0.9, сделал необходимые изменения и добавил необходимые файлы, начал установку. SQLite 3.0 недоступен и далее по ходу установки его выбрать нельзя. В то же самое время, myBB установился с использованием SQLite3, так что поддержка этой БД в php вроде как есть. Прикладываю включенные в мод файлы и изменённые мной файлы согласно инструкциям. Также в архиве есть phpinfo в текстовом и html-виде.
Вложения
files.tar.gz
(96.7 КБ) 341 скачивание
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Кажется, я понял в чём дело. Скачайте ещё раз файл МОДа с первой страницы и заново всё сделайте. Очевидно, у вас был скачан довольно старый мой МОД несколько месяцев назад. Для php 5.3.х нужен именно последний вариант МОДа.
Признак того, что вы делаете то, что надо: никаких вариантов sqlite3_query, sqlite3_fetch_array быть НЕ должно, это устаревший вариант МОДа!

<Удалено, не актуально>

Добавлено спустя 36 минут 49 секунд:
Одного не могу понять: откуда у вас такая "гремучая смесь" в исправленных файлах? Например, includes/db/sqlite_3.php у вас из последнего варианта МОДа. Короче, делайте всё набело, с последним МОДом и чистым вариантом phpBB 3.0.9.

Добавлено спустя 45 минут 27 секунд:
Немного скорректировал правки от МОДа, были неточности.

Добавлено спустя 11 минут 31 секунду:
Всё отменяется, я выложил какой-то левый вариант правок, завтра-завтра исправлю!
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 12 лет 7 месяцев
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: [final] Поддержка БД SQLite 3.0+

Сообщение NiGHt-LEshiY »

Я скачал лишь один файл. То ли отсюда, то ли с phpbb.com.
Буду ждать :)
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Всё, готово, вроде косяков быть не должно.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 12 лет 7 месяцев
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: [final] Поддержка БД SQLite 3.0+

Сообщение NiGHt-LEshiY »

Спасибо большое, всё завелось.
Мне интересна эта тема, так что я буду задавать вопросы, вы не против?
_________
Первое, что хотелось бы выяснить.. Провёл тут бенчмарки (два совершенно одинаковых только-что-установленных форума, различаются лишь базы данных. MySQL и SQLite 3).
Результат:
1. MySQL, index.php: 28.81 запросов в секунду
2. SQLite, index.php: 17.82 запросов в секунду
3. MySQL, viewtopic.php: 22.16 запросов в секунду
4. SQLite, viewtopic.php: 16.09 запросов в секунду

Очень странно получается.. Похоже, что SQLite медленнее даже на чтение хотя такого быть в принципе не должно.
Это возможно лишь в одном случае - таблица открывается перед началом запроса и закрывается после окончания запроса. Это так?
_____
Ещё один момент - блокировка. Были предупреждения такого вида:

Код: Выделить всё

[phpBB Debug] PHP Warning: in file /includes/db/sqlite_3.php on line 157: SQLite3::exec(): database is locked
[phpBB Debug] PHP Warning: in file /includes/db/sqlite_3.php on line 168: SQLite3::query(): Unable to execute statement: database is locked
_______
Думаю, нужно что-то с этим всем придумать. А я пока загоню обе БД в память и проведу ещё тесты.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Скажу одно: исследований я не делал и разбираюсь в этом меньше вас...
Видел и я блокировки, очевидно, SQLite не позволяет параллельный доступ от нескольких процессов.
Также скажу, что SQLite не самая крутая по быстродействию, там только 1 файл БД.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 12 лет 7 месяцев
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: [final] Поддержка БД SQLite 3.0+

Сообщение NiGHt-LEshiY »

Буду копать в эту сторону. Ладно, sqlite зато самая "лёгкая". Спасибо ещё раз за мод!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

Re: [final] Поддержка БД SQLite 3.0+

Сообщение Борис Бердичевский »

Ого!
Одну неприятную вещь сейчас исправлю и выложу. Правда, не очень мешает, но неприятно.

Добавлено спустя 10 минут 16 секунд:
Дело в том, что при попытке зайти в Админку -> Средства против спам-ботов -- выдавалась куча ошибок запросов к БД по той простой причине, что таблицы phpbb_captcha_answers и phpbb_captcha_questions не были предварительно созданы. Когда там выбирается Текстовое подтверждение и вводится хотя бы один вопрос, все ошибки исчезают.
Это ненормально, положено создавать эти таблицы заранее, чего я и добился, скорректировав файл install/schemas/sqlite_3_schema.sql
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Закрыто

Вернуться в «Бета-версии модов для phpBB 3.0.x»