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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 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 8:41, всего редактировалось 59 раз.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

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

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

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

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

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

Фикс бага размещён. Для тех, кто уже установил МОД, достаточно перезаписать исправленный файл includes/db/sqlite_3.php (из папки root).
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

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

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

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

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

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

Начиная с версии PHP 5.4.0 SQLite 2.x уже не поддерживается!

Добавлено спустя 21 минуту 43 секунды:
php_sqlite.dll уже отсутствует, только php_sqlite3.dll
У вас нет необходимых прав для просмотра вложений в этом сообщении.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

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

Сообщение rxu »

Да, в курсе, спасибо :) http://area51.phpbb.com/phpBB/viewtopic ... 69#p235969
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

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

Сообщение rxu »

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

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

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

Вы это проверяли? На какой версии php?
Мне думается, это старая версия моего МОДа, у которой было много проблем, главная -- не используется PDO.

Добавлено спустя 37 минут 22 секунды:
Только что обнаружил: МОД не поддерживает конверсию с phphBB-двойки. Из-за каких считанных исправлений в файле install/install_convert.php
Надо будет доработать.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Добавлю про администрирование баз SQLite3. Рекомендую phpliteadmin: нет проблем с php v.5.4. Все остальные скрипты для аминистрирования, что мне попадались (phpsqliteadmin, sqlitemanager, sqlitewebadmin и др.), либо приходилось подпиливать, либо они отказывались работать.

Борис Бердичевский, я упоминал о неточностях в теме phpBBEx, вопрос снят, в описании всё нормально, это были мои собственные глюки) Но установка сложновата, два раза делал для разных версий разных конференций, обессилил, слишком много мелких однотипных замен... У меня даже возникала крамольная мысль: взять да и заменить sqlite2 на 3, на первый взгляд это проще. Всё равно двойка уходит в прошлое.
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Если установлен мод Auto Backup (см. также здесь), в него необходимо внести дополнение для работы с SQLite3.

В auto_backup.php найти:

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

		case 'sqlite':
			$extractor = new sqlite_extractor(false, true, $format, $name, $time);
		break;
добавить после:

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

		case 'sqlite_3':
			$extractor = new sqlite3_extractor(false, true, $format, $name, $time);
		break;
Иначе автобэкап работать не будет по следующей причине (см. лог ошибок): Ошибка в [ROOT]/includes/auto_backup.php в строке 91: Undefined variable: extractor.

А можно ли восстановиться из бэкапа базы SQLite3 - скажу честно, не проверял)

Добавлено спустя 2 часа 48 минут 40 секунд:
Проверил, и не зря) Есть проблемы. При работе Auto Backup возникают ошибки:

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

Ошибка в [ROOT]/includes/db/sqlite_3.php в строке 456: Use of undefined constant name - assumed 'name'

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

Ошибка в [ROOT]/includes/db/sqlite_3.php в строке 457: Use of undefined constant name - assumed 'type'
и в бакапе ерунда.

Достаточно найти и заменить в sqlite_3.php строки

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

                        $column_name = $col_info[name];
                        $column_type = $col_info[type];
на

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

                        $column_name = $col_info['name'];
                        $column_type = $col_info['type'];
Теперь вроде всё нормально.
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 9 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

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

Сообщение c61 »

Еще одна проблема - umil... Сегодня ставил моды, добавление полей проходит, а создание таблиц - нет... похоже, umil на знает о sqlite3...
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

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

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

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

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

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

Update to 3.0.12
Используйте вместо phpBB-3.0.11_to_3.0.12.zip
phpBB-3.0.11_to_3.0.12-SQLite3.zip
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

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

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

Конференция с этим МОДом должна спокойно перевестись на 3.1 и в дальнейшем МОД не требуется.
Но есть 2 ньюанса.
1. Закрытие "дырочки" перевода. Для этого я направляю вас на английский сайт:
https://www.phpbb.com/community/viewtop ... #p13771721
2. В моём варианте драйвера есть модификация, позволяющая форуму работать стабильно. А иначе -- регулярно выскакивают ошибки обращения к БД. Выложу это позже.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

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

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

Модификация драйвера, без которой он нормально не работает, проверено:
Сообщаем об ошибках phpBB 3.1.x разработчикам

Добавлено спустя 22 минуты 55 секунд:
https://tracker.phpbb.com/browse/PHPBB3-13423
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!

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