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

Переход на PostgreSQL

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
alterak
phpBB 1.2.1
Сообщения: 25
Стаж: 10 лет 10 месяцев
Откуда: Сочи

Переход на PostgreSQL

Сообщение alterak »

Всем привет, я перенес базу с MySQL на Postgres, в файле config.php исправил на

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

<?php
// phpBB 3.3.x auto-generated configuration file
// Do not change anything in this file!
//$dbms = 'phpbb\\db\\driver\\mysqli';
$dbms = 'phpbb\\db\\driver\\postgres';
$dbhost = '192.168.2.14';
$dbport = '';
$dbname = 'имя_базы';
$dbuser = 'пользователь';
$dbpasswd = 'пароль';
$table_prefix = 'phpbb_';
$phpbb_adm_relative_path = 'adm/';
$acm_type = 'phpbb\\cache\\driver\\file';

@define('PHPBB_INSTALLED', true);
@define('PHPBB_ENVIRONMENT', 'production');
// @define('DEBUG_CONTAINER', true);
но в результате получаю ошибку

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

General Error
SQL ERROR [ postgres ]

pg_connect function does not exist, is pgsql extension installed? []

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.
Как я понимаю необходим драйвер для соединения с базой Postgres? У меня успользуется NGINX + PHP7.4-FPM
Как его установить на Debian?
Последний раз редактировалось Sheer 17.03.2021 11:41, всего редактировалось 2 раза.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4741
Стаж: 16 лет 8 месяцев
Откуда: Питер
Благодарил (а): 142 раза
Поблагодарили: 611 раз

Re: Переход на Postgres

Сообщение Siava »

apt install php-pgsql
или
apt install php7.4-pgsql
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.5.x)
alterak
phpBB 1.2.1
Сообщения: 25
Стаж: 10 лет 10 месяцев
Откуда: Сочи

Re: Переход на Postgres

Сообщение alterak »

Siava писал(а): 17.03.2021 9:49 apt install php-pgsql
или
apt install php7.4-pgsql
Спасибо, все установилось норм. Но теперь другая проблема вылезла...

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

Общая ошибка
SQL ERROR [ postgres ]

ОШИБКА: функция from_unixtime(bigint) не существует LINE 1: ...on_id, tt.mark_time, ft.mark_time as f_mark_time, FROM_UNIXT... ^ HINT: Функция с данными именем и типами аргументов не найдена. Возможно, вам следует добавить явные приведения типов. []
Произошла ошибка SQL при выборке на этой странице. Пожалуйста, сообщите администратору, если ошибка будет повторяться.
Вероятно таких ошибок будет куча и нужно будет вручную править базу данных-(

Перенос базы данных я делал с помощью dbForge Studio for MySQL, все таблицы перенеслись без ошибок.

Может есть способ перенести менее болезненно?
Последний раз редактировалось Sheer 17.03.2021 11:41, всего редактировалось 1 раз.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4741
Стаж: 16 лет 8 месяцев
Откуда: Питер
Благодарил (а): 142 раза
Поблагодарили: 611 раз

Re: Переход на PostgreSQL

Сообщение Siava »

alterak, попробуйте этот конвертер. Я им пользовался, когда конвертировал базу phpbb 3.2 в postgres. Всё работало.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.5.x)
Аватара пользователя
Pazh
Former team member
Сообщения: 2294
Стаж: 11 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 498 раз

Re: Переход на PostgreSQL

Сообщение Pazh »

alterak писал(а): 17.03.2021 10:29 from_unixtime
это функция MySql, в PostgeSQL нужно использовать аналог преобразования timestamp в дату

Вам сюда: https://www.postgresql.org/docs/current ... TIME-TABLE

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

to_timestamp ( double precision ) → timestamp with time zone

Convert Unix epoch (seconds since 1970-01-01 00:00:00+00) to timestamp with time zone

to_timestamp(1284352323) → 2010-09-13 04:32:03+00
если нужно с форматирование для отображения, то так например

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

to_char(to_timestamp(1284352323),'YYYY-MM-DD')
получите строку 2010-09-13
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4741
Стаж: 16 лет 8 месяцев
Откуда: Питер
Благодарил (а): 142 раза
Поблагодарили: 611 раз

Re: Переход на PostgreSQL

Сообщение Siava »

Pazh, это просто некорректно база конвертирована.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.5.x)
Аватара пользователя
Pazh
Former team member
Сообщения: 2294
Стаж: 11 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 498 раз

Re: Переход на PostgreSQL

Сообщение Pazh »

Siava, с чего ты это взял? в чистом phpbb нет вызова функции from_unixtime, следовательно это ругается какое-то расширение. Ругаться оно будет из-за того что в posgre нет функции from_unixtime, что и написано у него в ошибке. Причем тут конвертация? Поле с timestanp в mysql это беззнаковый integer длиной 11 - как можно это некорректно сконвертировать?
Помощь в ЛС/email только за WM или ЮMoney
alterak
phpBB 1.2.1
Сообщения: 25
Стаж: 10 лет 10 месяцев
Откуда: Сочи

Re: Переход на PostgreSQL

Сообщение alterak »

Pazh писал(а): 17.03.2021 15:16 Siava, с чего ты это взял? в чистом phpbb нет вызова функции from_unixtime, следовательно это ругается какое-то расширение. Ругаться оно будет из-за того что в posgre нет функции from_unixtime, что и написано у него в ошибке. Причем тут конвертация? Поле с timestanp в mysql это беззнаковый integer длиной 11 - как можно это некорректно сконвертировать?
А если я предварительно удалю все расширения и повторно конвертирую базу, это поможет?
Аватара пользователя
Pazh
Former team member
Сообщения: 2294
Стаж: 11 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 498 раз

Re: Переход на PostgreSQL

Сообщение Pazh »

alterak, не надо ничего удалять, можете отключить, но это никак не решит в дальнейшем проблему, т.к.
1) не знаете какое расширение не совместимо
2) после его включения проблема снова будет на месте

Файлы форума у Вас же есть на локалке? - сделайте поиск по содержимому например в TotalCommander поиск from_unixtime и заменить на to_timestamp(1284352323), только вместо цифр там будет название какого-то поля из таблицы

Не нужно изобретать велосипед, уже несколько раз написали что нужно сделать...
Помощь в ЛС/email только за WM или ЮMoney
alterak
phpBB 1.2.1
Сообщения: 25
Стаж: 10 лет 10 месяцев
Откуда: Сочи

Re: Переход на PostgreSQL

Сообщение alterak »

Pazh писал(а): 18.03.2021 10:26 Файлы форума у Вас же есть на локалке? - сделайте поиск по содержимому например в TotalCommander поиск from_unixtime и заменить на to_timestamp(1284352323), только вместо цифр там будет название какого-то поля из таблицы
Спасибо, теперь все работает отлично. Проблема была в расширении recenttopics, в файле

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

\ext\paybas\recenttopics\core\recenttopics.php
alterak
phpBB 1.2.1
Сообщения: 25
Стаж: 10 лет 10 месяцев
Откуда: Сочи

Re: Переход на PostgreSQL

Сообщение alterak »

Жаль что сразу все полностью не проверил... Сегодня при размещении новой темы я столкнулся с ошибкой, подскажите куда капнуть?
Общая ошибка
SQL ERROR [ postgres ]

ОШИБКА: текущая транзакция прервана, команды до конца блока транзакции игнорируются []

SQL

INSERT INTO phpbb_posts (forum_id, poster_id, icon_id, poster_ip, post_time, post_visibility, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_locked, topic_id) VALUES (22, 2, 0, '192.168.2.20', 1616914641, 1, 1, 1, 1, 1, '', 'Тест', '<t>Тестовая тема</t>', 'c8b10b92119b198c720a7b7df11231b9', 0, '', 'g97i', 1, 0, 0)

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 1023
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/postgres.php
LINE: 193
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 345
CALL: phpbb\db\driver\postgres->sql_query()

FILE: [ROOT]/includes/functions_posting.php
LINE: 1922
CALL: phpbb\db\driver\factory->sql_query()

FILE: [ROOT]/posting.php
LINE: 1494
CALL: submit_post()

Вернуться в «Поддержка phpBB 3.3.x»