RussianFox / imap

Interactive map for Zabbix
https://zabbiximap.lisss.ru/
59 stars 43 forks source link

Поддержка PostgreSQL #5

Closed VadimRozhik closed 9 years ago

VadimRozhik commented 9 years ago

Добрый день!

Настроил imap с использованием PostgreSQL, работает. Есть желание добавить поддержку постгреса в релиз?

RussianFox commented 9 years ago

Уже добавлено. А вот инструкции и аналога файла tables.sql для PostgreSQL не хватает. Сможете помочь?

VadimRozhik commented 9 years ago

Проверка наличия таблиц выдавала ошибку, поменял код SQL в imap.php, 395 строка: $glinks = DBfetchArray(DBselect("select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'hosts_links_settings'")); if (count($glinks)==0) $check_links = false; $glinks = DBfetchArray(DBselect("select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'hosts_links'")); if (count($glinks)==0) $check_links = false;

tables.sql:

CREATE TABLE hosts_links_settings ( ids bigint NOT NULL, color character varying(30) DEFAULT NULL, weight integer, opacity integer, dash character varying(100) DEFAULT NULL ); ALTER TABLE ONLY hosts_links_settings ADD CONSTRAINT hosts_links_settings_pkey PRIMARY KEY (ids);

CREATE SEQUENCE hosts_links_seq; CREATE TABLE hosts_links ( id bigint DEFAULT nextval('hosts_links_seq') NOT NULL, name character varying(300) DEFAULT NULL, host1 bigint NOT NULL, host2 bigint NOT NULL ); ALTER TABLE ONLY hosts_links ADD CONSTRAINT hosts_links_pkey PRIMARY KEY (id); ALTER TABLE ONLY hosts_links ADD CONSTRAINT hosts_unique UNIQUE (host1, host2);

Команда для добавления таблиц в БД из под рута: sudo -u zabbix psql -U zabbix -W -d zabbix < table.sql где $ sudo -u zabbix - действия от имени системного пользователя zabbix (иначе PosgreSQL не аутентифицирует пользователя), -U zabbix - владелец БД, -d zabbix - название БД.

To create table in PostgreSQL run under root: $ sudo -u zabbix psql -U zabbix -W -d zabbix < table.sql where sudo -u zabbix - act as system user 'zabbix' (otherwise PosgreSQL will not authenticate user), -U zabbix - database owner, -d zabbix - database name.

RussianFox commented 9 years ago

Отлично!

Только я проверку таблиц сделал другой, универсальной для всех баз. Проверяйте.

VadimRozhik commented 9 years ago

В master'е запрос для проверки: Show tables from zabbix like 'hosts_links'

Мы об этой проверке говорим? В postgresql нет show tables, там \dt zabbix=# Show tables from zabbix like 'hosts_links'; ERROR: syntax error at or near "from" LINE 1: Show tables from zabbix like 'hosts_links'; ^ SQL-запрос что я прислал работает и в mysql.

RussianFox commented 9 years ago

Не в master, в develop

Проверьте, если все ок, запулю в мастер.

VadimRozhik commented 9 years ago

imap.php из develop'а работает. Спасибо!

RussianFox commented 9 years ago

Вам спасибо за файл схемы и инструкцию