[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: [RC] Поддержка БД SQLite 3.0+

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

Я тут подумал, что МОД мало подходит для тех, у кого действующий развитый Форум на sqlite 2.0.x
Чтобы перейти на версию БД 3.0.x, придётся повозиться, -- перевести БД на трёшку вне phpBB.
Кто открывает новый Форум, тому проще. Создать Форум версии 3.0.2 (такую версию я предоставляю в архиве) и обновить до 3.0.5, используя стандартный пакет обновлений + 2 моих файла.
У кого какие проблемы с этим, готов проконсультировать.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

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

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

Поддержка версии 3.0.6
Заменить файлы из архива в пакетах обновления версий:
http://www.borisba.com/~borisba/phpBB3/ ... _3_0_6.zip

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

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

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

Поддержка версии 3.0.7-PL1
Заменить файлы из архива в пакетах обновления версий:
http://www.borisba.com/~borisba/phpBB3/ ... _7_PL1.zip

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

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

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

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

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

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

Есть идея существенно упростить этот МОД, для чего переписать sqlite.php, используя объект PDO. Не знаю, когда я этим займусь и когда у меня что-то выйдет положительное, -- буду пробовать.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

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

Сообщение rxu »

Борис Бердичевский
Можете ли Вы оформить продукт в виде нормального мода для phpBB в текущей его версии?
Включить туда, естественно, только изменения кода для phpBB, не затрагивая PHP модули.
Изображение
Аватара пользователя
Борис Бердичевский
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+

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

---------------------------------------------------- Старое сообщение о МОДе -------------------------------------------------------
Я задался вопросом: почему phpBB работает с устаревшей (если не сказать "допотопной") версией SQLite?

Дело в том, что до сих пор php не работал с SQLite 3.0+, только со второй, весьма старой, версией этой БД.
Я прежде всего откопал и протранслировал коды DLL (php_sqlite3.dll) и затем уже внёс модификации в phpBB для поддержки этой версии SQLite. Правда, всё это касается только MS Windows. Для Unix php_sqlite3 уже имелся, но я его не проверял.

Выкладываю "final".

Стандартный пакет MOD-а для обновления:
http://www.borisba.com/~borisba/phpBB3/ ... .0_MOD.zip

Список измененных файлов:
docs/coding-guidelines.html
docs/INSTALL.html
includes/acp/acp_database.php
includes/acp/acp_profile.php
includes/db/db_tools.php
includes/functions_admin.php
includes/functions_install.php
language/en/install.php
language/ru/install.php

Список добавленных файлов:
includes/db/sqlite_3.php
install/schemas/sqlite_3_schema.sql

Файлы sqlite3:
Файл install/sqlite3-dlls/v5.2.6/php_sqlite3.dll (для php 5.2.6) или install/sqlite3-dlls/v5.2.9/php_sqlite3.dll (для php 5.2.9) должен быть размещён в php/ext и соответственно включён в php.ini
(строка extension=php_sqlite3.dll )
Файл install/sqlite3-dlls/sqlite3.dll должен быть помещён в каталог Windows/System32

Версии:
  • php -- 5.2.6 или 5.2.9
  • sqlite -- 3.6.11
  • phpBB -- начиная с 3.0.2
Пакеты обновлений (используйте именно эти пакеты вместо стандартных!): Дополнительно: Мой Форум http://www.borisba.com/forum-php/index.php работает с новой версией SQLite.

28.09.2009 -- изменен статус на "final".[/quote]
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
jno
phpBB 1.0.0
Сообщения: 3
Стаж: 15 лет 10 месяцев

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

Сообщение jno »

Блин, поставил свежий 3.0.8, а там: "Сервер базы данных: SQLite 2.8.17" :o
Для этой версии поддержка SQLite 3.x будет? Чё-то я не понял это дело...
Или всё убить и громоздить сверху мод?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

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

Сообщение rxu »

jno писал(а):SQLite 2
jno писал(а):Для этой версии поддержка SQLite 3.x будет?
Вот я точно ничего не понял.
Изображение
Аватара пользователя
jno
phpBB 1.0.0
Сообщения: 3
Стаж: 15 лет 10 месяцев

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

Сообщение jno »

Вот я точно ничего не понял.
;)

ну, почитав тут вокруг у меня склалось впечатление, что в 3.0.8 поддержка SQLite 3.х будет штатно...
видать, неверное впечатление, т.к. phpBB3 подхватил SQLite 2.x (где только нашёл, зараза? я, вроде, и не ставил - только 3.х ...).

вот и интересуюсь, какие должны быть теперь мои правильные действия, чтобы перелезть на 3.х?
с учётом того, что мод, вроде как, не тестирован на 3.0.8, но работал на 3.0.7-ПЛ1...

да, к ночи ближе слог всё корявее становится :|

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

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

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

Сейчас с этим модом есть определённая проблема. МОД работает только для версий PHP 5.2.6/5.2.9 с драйвером, протранслированным мной и представленным в пакете (только для MS Windows). Для версий 5.3.х есть встроенный PDO SQLite 3.0, но это совершенно иной интерфейс, к которому я сейчас приспосабливаю этот МОД. Там уже все практически заработало, кроме последнего (надеюсь!) бага, с которым я пока не могу справиться. Повторюсь, мне пришлось всё переделать капитально.

Добавлено спустя 29 минут 32 секунды:
вот и интересуюсь, какие должны быть теперь мои правильные действия, чтобы перелезть на 3.х?
с учётом того, что мод, вроде как, не тестирован на 3.0.8, но работал на 3.0.7-ПЛ1...
Как я уже написАл, при переходе с SQLite 2.0 на 3.0 пользователь сам отвечает за конвертирование БД со старой на новую. Это можно сделать, использовав средства консоли sqlite.exe. Пользователь устанавливает МОД на версию и создает пустую БД с нуля. Далее, можно просто скопировать в файл БД сконвертированную ранее БД (напомню, БД от SQLite это 1 файл).
МОД еще не дорабатывался для phpBB 3.0.8, в связи с разработкой его для PDO.
Но всю работу по конвертации и переходу уже можно проделать (при условии использования MS Windows и php 5.2.9), чтобы в дальнейшем без проблем перейти на будущие PDO и phpBB 3.0.8.

Добавлено спустя 9 минут 13 секунд:
ну, почитав тут вокруг у меня склалось впечатление, что в 3.0.8 поддержка SQLite 3.х будет штатно...
Нет, вот хотим с rxu вставить штатно в будущие версии 3.1.х
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
jno
phpBB 1.0.0
Сообщения: 3
Стаж: 15 лет 10 месяцев

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

Сообщение jno »

хм... а пхп у меня: PHP Version 5.2.4-2ubuntu5.12, но SQLite3 она вполне понимает (на моих самоделках, через функции SQLite3_*, типа SQLite3_query - именно в этой записи, а не в "объектной" через ::).
это на Ubuntu 8.10 LTS такая... и не виндуз ни разу.

под "использованием средств консоли", как я понял, понимается что-то вроде

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

sqlite /my/phorum/db/forum1.sqlite2 .dump .quit | sqlite3 /my/phorum/db/forum2.sqlite3 
попробовал так:

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

jno@jno:/opt/forum.db$ sqlite phpbb-f1.db .dump .quit | sqlite3 phpbb-f2.db 
jno@jno:/opt/forum.db$ ll
total 1260
-rw-rw-r-- 1 jno www-data 742400 Dec  8 15:10 phpbb-f1.db
-rw-r--r-- 1 jno www-data 521216 Dec  8 15:28 phpbb-f2.db
jno@jno:/opt/forum.db$ file *
phpbb-f1.db: SQLite 2.x database
phpbb-f2.db: SQLite 3.x database
jno@jno:/opt/forum.db$ 
а, может, штатный sql-бекап накатить?

и велики ли потери от работы через старый драйвер с эскулайтом 2.х?
или забить на всё и переехать на мускул? неспортивно как-то...

ЗЫ. Вот, что у меня в пхп понапихано:

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

jno@jno:~/www$ pear list
PHP Warning:  Module 'zip' already loaded in Unknown on line 0
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.7   stable
Console_Getopt   1.2.3   stable
DB               1.7.13  stable
DB_DataObject    1.9.5   stable
Date             1.4.7   stable
Fileinfo         1.0.4   stable
HTTP_Request     1.4.4   stable
Mail             1.2.0   stable
Mail_Mime        1.8.1   stable
Mail_mimeDecode  1.5.5   stable
Net_Curl         1.2.5   stable
Net_SMTP         1.4.4   stable
Net_Socket       1.0.10  stable
Net_URL          1.0.15  stable
Net_URL2         0.3.1   beta
PEAR             1.9.1   stable
PHPUnit          1.3.2   stable
PhpDocumentor    1.4.3   stable
Structures_Graph 1.0.4   stable
Validate         0.8.4   beta
XML_Beautifier   1.2.2   stable
XML_Parser       1.3.4   stable
XML_Util         1.2.1   stable
Последний раз редактировалось jno 08.12.2010 15:42, всего редактировалось 1 раз.
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 18 лет 8 месяцев
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз

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

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

jno
вы для начала установите чистенькую версию phpBB 3.0.7-PL1 с МОДом, посмотрите, как она себя поведёт -- совместима ли с вашим драйвером.
Если откажется устанавливаться, ничего страшного, ждите версии PDO. Также обратите внимание, что при установке, в самом начале, должна быть возможность выбора SQLite 3.0 -- если нет, уже проблема.
Потерь при переходе с 2.0 на 3.0 быть не должно, при корректном переходе.

SQLite 2.0 допотопная, там не хватает ряда нормальных операций БД, файл БД трёшки меньше размером. Думаю, показатели быстродействия у 3.0 также лучше. Уже не говоря о том, что двойка более не поддерживается, все модификации выходят только для тройки.

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

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

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

Осталось ещё одна пакость, не критическая, а так всё в принципе работает!
И я надеюсь вскоре начать тестирование на собственном форуме. Плюс переход на 3.0.8.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!

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