Назад | Перейти на главную страницу

Установка Sympa + PostgreSQL: Upgrade :: probe_db () Таблица user_table не найдена (Ubuntu Hardy)

У меня возникла проблема при попытке установить Sympa на сервер Ubuntu Hardy.

Проблема, похоже, связана с соответствующей базой данных PostreSQL.

Шаги, которые я сделал:

1) Установил PostreSQL.

sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev

2) Обновлены пароли администраторов PostgreSQL. PostgreSQL создает две учетные записи для своего «администратора». Одна - это «учетная запись базы данных» (для входа в сам postgresql), а другая - «учетная запись linux» (для создания файлов на сервере, я думаю). Я сбрасываю пароль учетной записи базы данных следующим образом:

sudo su postgres -c psql
ALTER USER postgres WITH PASSWORD 'password';
\q

А затем сбросьте пароль "учетной записи linux" обычным способом:

sudo passwd -d postgres
sudo su postgres -c passwd

3) Включен доступ по паролю на PostgreSQL. По умолчанию PostgreSQL позволяет вам входить в систему только под своим именем Linux. Таким образом, если вы вошли в систему под Linux как пользователь «tim», это позволит вам войти в базу данных только как «tim». Мы хотим изменить это так, чтобы он запрашивал у вас имя пользователя и пароль, чтобы вы могли войти в систему как другие люди.

sudo nano /etc/postgresql/8.3/main/pg_hba.conf

В этом файле я обновил следующие строки:

#local all all ident sameuser
local all all md5
#host all all 127.0.0.1/32 ident sameuser
host all all 127.0.0.1/32 md5
#host all all ::1/128 ident sameuser
host all all ::1/128 md5

4) Пришло время установить sympa. Я только что сделал это:

sudo apt-get install sympa

5) Мне было предложено установить множество пакетов perl. Я принял предложения.

6) Затем появился диалог, и я ответил на 3 вопроса:

На этом этапе установка показывает следующие сообщения:

/etc/sympa/sympa.conf file has been created
/etc/sympa/wwsympa.conf file has been created
 * Reloading system log daemon...         [ OK ] 
Upgrade::probe_db() Table user_table not found in database sympa
Upgrade::probe_db() Table subscriber_table not found in database sympa
Upgrade::probe_db() Table admin_table not found in database sympa
DBD::Pg::db do failed: ERROR:  permission denied to create database
Upgrade::probe_db() Failed to run script '/usr/lib/sympa/bin/create_db.Pg' : ERROR:  permission denied to create database

DBD::Pg::st execute failed: ERROR:  relation "user_table" does not exist
List::get_user_db() Unable to execute SQL statement "SELECT email_user AS email, gecos_user AS gecos, password_user AS password, cookie_delay_user AS cookie_delay, lang_user AS lang , attributes_user AS attributes FROM user_table WHERE email_user = 'listmaster@testohwr.org' " : ERROR:  relation "user_table" does not exist

Language::SetLang() Language::SetLang(), missing locale parameter
Database sympa defined in sympa.conf has not the right structure or is unreachable. If you don't use any database, comment db_xxx parameters in sympa.conf
Sympa failed to prepare database.
dpkg: error processing sympa (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 sympa
E: Sub-process /usr/bin/dpkg returned an error code (1)

Однако база данных sympa и пользователь создаются в базе данных - я вижу их, если я это делаю:

sudo su postgres -c psql
/du  (list of users contains sympa)
/l   (list of databases contains sympa)

Похоже, что установщик sympa не может подключиться к posgre и, таким образом, не находит нужные таблицы ... а затем интерпретирует это как ошибку «база данных отсутствует».

Я не знаю, как отследить эту ошибку. Любые указатели будут оценены.

Старый вопрос, я знаю, но я только что получил ту же ошибку на ubuntu 14.04 с Sympa 6.1.17 ~ dfsg-1.

Я обнаружил, что запуск скрипта вручную работает.

     sudo apt-get install sympa
     # errors happen
     psql -U postgres #or some superuser
     drop database sympa;
     \i /usr/lib/sympa/bin/create_db.Pg
     \q
     sudo dpkg-reconfigure sympa

Затем во время перенастройки скажите, что вы хотите снова настроить базу данных, но на этот раз она найдет ожидаемые таблицы, чтобы не пытаться снова запустить сценарий.

Попробуйте не сбрасывать пароль пользователя базы данных psql.

В соответствии с http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440109#27, это решает проблему.

Sympa неплохо работает с PostgreSQL (проверено как на 5.3, так и на 6.1). У него есть некоторые проблемы только в модуле Upgrade.pm, где он проверяет наличие таблиц, потому что PostgreSQL (точнее, его модуль Perl) возвращает имена таблиц со схемой в качестве префикса, и из-за этого сравнение имен таблиц не удается. Я отправил ошибка для этого с патчем.

Sympa полностью поддерживается только MySQL и Sendmail (по крайней мере, версия в репозиториях Hardy есть).

Пытаясь установить его с другой конфигурацией (например, PosgreSQL + PostFix), вы более или менее сами по себе ... будьте готовы изменить файлы perl и (возможно) перекомпилировать его в какой-то момент.