Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 1767 - Переход на использование PostgreSQL 8.3   Make a simular bug
Summary: Переход на использование PostgreSQL 8.3
Status: CLOSED FIXED
Alias: None
Product: Postgres@Etersoft
Classification: Продукты (Products)
Component: СУБД (show other bugs)
Version: не указана
Hardware: PC All
: P5 normal
Target Milestone: ---
Assignee: Калюхович Юрий
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 2488 2502 2516 3167
Blocks: 2637
  Show dependency treegraph
 
In work:
Reported: 2008-05-02 11:21 MSD by Boris Savelev
Modified: 2009-07-11 20:44 MSD (History)
4 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
лог трассировки (322.37 KB, text/plain)
2010-11-18 03:58 MSK, Калюхович Юрий
Details
лог сельты (85.57 KB, text/plain)
2010-11-18 03:58 MSK, Калюхович Юрий
Details
обновленный вариант скрипта mchar.sql (29.51 KB, application/octet-stream)
2010-11-18 03:58 MSK, Калюхович Юрий
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Boris Savelev 2008-05-02 11:21:41 MSD
сходу много патчей не прикладывается. особенно волнует 1c_FULL_82-0.13.patch
в остальных необходимо внести незначительные изменения
Comment 1 Boris Savelev 2008-08-14 12:47:01 MSD
надо попробовать приложить 1c_FULL_82-0.18.patch
часть функционала уже добавлена в 8.3.
можно собирать contrib/mchar отдельно от патча.
Comment 2 Boris Savelev 2008-08-16 13:58:21 MSD
в 1c_FULL_82-0.18.patch содержится ряд противоречивых с оригиналом (8.3.3) изменений. С ним надо разбираться плотно и вдумчиво со знанием языка.

все что приложилось:
http://git.etersoft.ru/people/boris/packages/?p=postgresql-8.3.3.git;a=shortlog;h=refs/heads/etersoft
Comment 3 Boris Savelev 2008-08-22 14:03:52 MSD
1с готовит выпуск 8.3
есть тестовая сборка.
написал письмо, может патчи дадут...
Comment 4 Boris Savelev 2008-08-25 16:44:34 MSD
не дают патчи пока. сказали ждать пока релиз будет-(
Comment 5 Михаил Карпухин 2008-09-11 23:34:00 MSD
Патчи 8.3 уже в свободном доступе http://www.v8.1c.ru/overview/postgres_patches_notes.htm ждем сборок !!!

p.s.

Особенно ubuntu/debian !!!
Comment 6 Boris Savelev 2008-09-11 23:40:56 MSD
спасибо. займусь в отпуске-)
Comment 7 Boris Savelev 2008-09-22 20:30:59 MSD
как будет время, проверьте с сельтой
Comment 8 Михаил Карпухин 2008-09-23 11:39:44 MSD
А сельта умеет работать с 8.3 ? Помоему она на версию PG ругается ;-(
Comment 9 Михаил Карпухин 2008-09-23 16:47:51 MSD
ubuntu 8.04 не ставиться:

$ sudo dpkg -i ./postgresql8.3.1c-contrib_8.3.3-1_i386.deb 
Выбор ранее не выбранного пакета postgresql8.3.1c-contrib.
(Чтение базы данных... на данный момент установлено 118056 файлов и каталогов.)
Распаковывается пакет postgresql8.3.1c-contrib (из файла .../postgresql8.3.1c-contrib_8.3.3-1_i386.deb)...
dpkg: зависимости пакетов не позволяют настроить пакет postgresql8.3.1c-contrib:
 postgresql8.3.1c-contrib зависит от libpq5 (>= 8.3~beta1), однако:
  Пакет libpq5 не установлен.
dpkg: не удалось обработать параметр postgresql8.3.1c-contrib (--install):
 проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
 postgresql8.3.1c-contrib

libpq5 конфликтует и postgresql8.3.1c-libs_8.3.3-1_i386.deb
Comment 10 Шильников Андрей 2008-09-23 16:56:55 MSD
Я попробовал поставить под Альтлинукс. Старую пакеты были предварительно удалены. Libpq поставил последний из достопных в сизифе. Все нормально поставилось, но старт не удался.
Появилось сообщение о том, что база старая и надо обратиться к мануалу, чтобы обновить версию базы, но я пока не нашел о чем именно идет речь.
Comment 11 Boris Savelev 2008-09-23 18:59:07 MSD
> libpq5 конфликтует и postgresql8.3.1c-libs_8.3.3-1_i386.deb
> 
Естественно. Так всегда было.

> Появилось сообщение о том, что база старая
> и надо обратиться к мануалу, чтобы обновить
> версию базы, но я пока не нашел о чем именно
> идет речь.
> 
Старую, для тестов можно снести. Естественно новая СУБД со старой базой не работает. Обновлять в данном случае смысла нет.
Comment 12 Шильников Андрей 2008-09-23 21:28:06 MSD
Установил. Первая проблема была при задании пароля пользователю postgres.
psql: FATAL:  Ident authentication failed for user "postgres"
Вписал в pg_hba.conf: host all all trust. Это помогло.
Запустил Сельту, при попытке подключиться сообщила, версия субд старая, скачайте по ссылке новую (указывала на 8.2), но окно открыла (внизу постоянно висит окно, в котором сообщается что база не соответствует), из действий позволено только обновлять список.
Comment 13 Михаил Карпухин 2008-09-23 21:35:05 MSD
Да не всегда... Сейчас в ubuntu 8.04 он говорит, что ему помимо libpq5 который в postgresql8.3.1c-libs_8.3.3-1_i386 еще для contrib надо родной ubuntu-вский  libpq5 и дальше никак...

postgresql8.3.1c-contrib зависит от libpq5 (>= 8.3~beta1), однако:
  Пакет libpq5 не установлен.

при этом libs уже стоит!
Comment 14 Boris Savelev 2008-09-23 21:50:01 MSD
(In reply to comment #12)
> Установил. Первая проблема была при
> задании пароля пользователю postgres.
> psql: FATAL:  Ident authentication failed for user "postgres"
> Вписал в pg_hba.conf: host all all trust. Это помогло.
это неправильно, но ладно...
из нашей сборки я это вырезал для секурности.
для смены пароля должно было остаться
local all all  trust

> Запустил Сельту, при попытке подключиться
> сообщила, версия субд старая, скачайте по
> ссылке новую (указывала на 8.2), но окно
> открыла (внизу постоянно висит окно, в
> котором сообщается что база не
> соответствует), из действий позволено
> только обновлять список.
> 
багу на сельту

(In reply to comment #13)
> Да не всегда... Сейчас в ubuntu 8.04 он говорит,
> что ему помимо libpq5 который в
> postgresql8.3.1c-libs_8.3.3-1_i386 еще для contrib надо родной
> ubuntu-вский  libpq5 и дальше никак...
> 
> postgresql8.3.1c-contrib зависит от libpq5 (>= 8.3~beta1),
> однако:
>   Пакет libpq5 не установлен.
> 
> при этом libs уже стоит!
> 
старнно. надо проверить.
схема такая должна быть:
libs провайдит libpq
libs конфликтует с libpq
contrib зависит от libpq
Comment 15 Калюхович Юрий 2008-11-27 13:14:29 MSK
поставил PostgreSQL 8.3.3 на testing, запустился и работает
Comment 16 Калюхович Юрий 2008-11-27 13:18:40 MSK
со стороны сельты создание, инициализация/деинициализация и удаление базы успешно, дальше тестируем с 1С
Comment 17 Boris Savelev 2008-11-27 13:25:58 MSK
1)http://updates.etersoft.ru/pub/Etersoft/PostgreSQL/8.3.5/ALTLinux/
лучше сразу эту сборку. смысла тестировать старую версию нет.

2) Изменился mchar.so и соответственно mchar_install.sql (убрали вроде 2 функции)
подробнее можно посмотреть сравнив mchar_install.sql от 8.2.9 и 8.3.3.
Выводы делай сам-)
Comment 18 Калюхович Юрий 2008-11-27 16:47:44 MSK
поставил PostgreSQL 8.3.5 ; создание, инициализация/деинициализация, удаление базы с помощью сельты успешно. дальше снова тестируем с 1С
Comment 19 Михаил Карпухин 2008-11-27 21:38:43 MSK
А как производительность 1с v77 ? И когда будут сборки под ubuntu ? 
Comment 20 Калюхович Юрий 2008-12-09 17:43:48 MSK
изменил вспомогательные скрипты, прогнал по конфигурациям бух, тис и зик - в последней обнаружилась ошибка:
выбираем Отчеты->расчетные листки->по списку сотрудников заполнить штатными сотрудниками -> сформировать => получаем ошибку XX000 could not find member 1(56175, 56175) of opfamily
а затем невосстановимую ошибку бд
Comment 21 Калюхович Юрий 2008-12-09 17:49:02 MSK
Created attachment 959 [details]
лог трассировки
Comment 22 Калюхович Юрий 2008-12-09 17:49:26 MSK
Created attachment 960 [details]
лог сельты
Comment 23 Калюхович Юрий 2008-12-09 17:50:12 MSK
Created attachment 961 [details]
обновленный вариант скрипта mchar.sql
Comment 24 Калюхович Юрий 2008-12-11 15:00:22 MSK
(In reply to comment #20)
> изменил вспомогательные скрипты, прогнал
> по конфигурациям бух, тис и зик - в
> последней обнаружилась ошибка:
> выбираем Отчеты->расчетные листки->по
> списку сотрудников заполнить штатными
> сотрудниками -> сформировать => получаем
> ошибку XX000 could not find member 1(56175, 56175) of opfamily
> а затем невосстановимую ошибку бд

на старом постгри (8.2.11) таких проблем нет
Comment 25 Калюхович Юрий 2008-12-11 20:11:20 MSK
упрощенный запрос с такой же ошибкой - 
SELECT CJ447.IDDOC FROM CJ447, _1SJOURN where right(CJ447.IDDOC, 9)=_1SJOURN.IDDOC;

ошибка связана со сравнением результата right () и поля _1SJOURN.IDDOC,
сама right работает;
у нас эта ф-ция была для типа mvarchar, добавление ее же для mchar решило проблему
Comment 26 Калюхович Юрий 2008-12-15 11:59:45 MSK
добавил также функции left для mchar и mvarchar; дополнил скрипт uninstall_mchar.sql. теперь создание, иниц/деиниц. и удаление без ошибок, заново прогнал по трем конфигурациям (бух,тис,зик - загрузка/выгрузка,выполнение типовых операций) - без ошибок
Comment 27 Vitaly Lipatov 2008-12-15 12:08:53 MSK
1. Не забыть описание процедуры обновления на PG 8.3 при имеющихся базах.
2. Учесть, что mchar.sql теперь должен выбираться в зависимости от версии PG.
Comment 28 Станислав Коробейников 2008-12-17 18:05:34 MSK
(In reply to comment #27)
> 1. Не забыть описание процедуры обновления
> на PG 8.3 при имеющихся базах.
> 2. Учесть, что mchar.sql теперь должен
> выбираться в зависимости от версии PG.

Да, сделал это. Еще не протестировал. Протестирую, закоммичу. 
Comment 29 Станислав Коробейников 2008-12-18 18:39:27 MSK
Добавил в msi все новые копирования. Немного изменил в связи с этим сам initdb. Исправил в нем некоторые ошибки. 
Comment 30 Станислав Коробейников 2008-12-19 17:09:02 MSK
Все изменения закоммитил (кроме нового mchar) и то, что с ним связано:
Протестировал всевозмодные обновления
Варианты рассмотрел такие.
Инициализация
1. 105 pg 8.2.11
scripts/0/0install.sql, scripts/0/0mchar.sql	
2. 105 pg 8.3.5
scripts/8300/8300install.sql, scripts/8300/8300mchar.sql	

Деинициализация
1. 105 pg 8.2.11
scripts/0/0selta_uninstall.sql, scripts/0/0uninstall_mchar.sql	
2. 105 pg 8.3.5 
scripts/8300/8300selta_uninstall.sql, 	

Обновления:
1. 104 -> 105 pg 8.2.11 ->8.2.11
	Update scripts/0/0selta_update_104_to_105.sql

2. 104 -> 105 pg 8.2.11 ->8.3.5
a)Update scripts/0/0selta_update_104_to_105.sql
б)DeInit scripts/0/0selta_uninstall.sql, scripts/0/0uninstall_mchar.sql	
в)Init scripts/8300/8300install.sql, scripts/8300/8300mchar.sql	

3. 105 -> 105 pg 8.2.11 ->8.3.5
а)DeInit scripts/0/0selta_uninstall.sql, scripts/0/0uninstall_mchar.sql	
б)Init scripts/8300/8300install.sql, scripts/8300/8300mchar.sql		
Comment 31 Станислав Коробейников 2008-12-19 17:12:08 MSK
Надо написать мануал, как переходить на 1.0.5, если изменилось Postgre и если не изменилось, и что нужно сделать при обновлении Postgre до 8.3

И надо небольшой хелп по тому, как менять версии (что, где менять в коде)

Comment 32 Vitaly Lipatov 2008-12-19 17:34:48 MSK
(In reply to comment #31)

> И надо небольшой хелп по тому, как менять
> версии (что, где менять в коде)
Начало есть в README в корне проекта. Думаю, тебе надо написать на вики, пользуясь своими знаниями и удалить из README. 

Comment 33 Станислав Коробейников 2008-12-22 14:37:06 MSK
(In reply to comment #32)

>Начало есть в README в корне проекта. Думаю,
>тебе надо написать на вики, пользуясь
>своими знаниями и удалить из README. 
Написал на вики:
как менять версии
http://wiki.etersoft.ru/SELTA/ChangeVer?v=14z3
как переходить на 8.3
http://wiki.etersoft.ru/SELTA/MigrationPg?v=19xm
Comment 34 Калюхович Юрий 2008-12-22 17:00:24 MSK
закоммитил изменения в скриптах. обнаружилась проблема - неправильное обновление баз - неправильная ре-инициализация баз при обновлении версии постгри
Comment 35 Станислав Коробейников 2008-12-22 18:36:09 MSK
Сделал так, что бы обновлялся mchar не через uninstall - install (так как удалялись все связанные с типом поля), а через update.
Но появилась другая проблема. 
ALTER TYPE меняет только owner и schema.
DROP без CASCADE не делается, а с CASCADE удалает все связанное.

Comment 36 Станислав Коробейников 2008-12-24 19:47:44 MSK
Теперь обновлятся будет так:
делается dump с sql коммандами
изменяется в нем mchar
заливается обратно

написал Makefile, что бы это делалось для Linux 
написал програмку и bat файл, что бы это делалось для win
Comment 37 Станислав Коробейников 2008-12-24 19:48:21 MSK
Надо выложить и написать к этому небольшой мануал
Comment 38 Vitaly Lipatov 2008-12-24 20:18:01 MSK
(In reply to comment #36)
> Теперь обновлятся будет так:
> делается dump с sql коммандами
> изменяется в нем mchar
> заливается обратно
> 
> написал Makefile, что бы это делалось для Linux 
А почему не просто скрипт?

> написал програмку и bat файл, что бы это
> делалось для win
Что за программка? Наверное эта функциональность должна быть реализована в той утилите командной строки, которая у нас уже есть. 

Comment 39 Станислав Коробейников 2008-12-25 09:48:49 MSK
(In reply to comment #38)
> (In reply to comment #36)
> > Теперь обновлятся будет так:
> > делается dump с sql коммандами
> > изменяется в нем mchar
> > заливается обратно
> > написал Makefile, что бы это делалось для Linux 
> А почему не просто скрипт?
Можно и просто скрипт. Мне просто кажется, делаются файлы, значит make хорошо.

 
> > написал програмку и bat файл, что бы это
> > делалось для win
> Что за программка? Наверное эта
> функциональность должна быть реализована
> в той утилите командной строки, которая у
> нас уже есть. 
Программка ищет в mchar и mvarchar в backup'е, и заменяет их на новые.
Это одноразовый пачик, даже в msi включать его мне кажется не надо, выложить на ftp, и ссылку на него на wiki. Selta ни как не затрагивается при этом. К тому же выполнять надо на сервере, потому что требуются postgresовские программы: pg_dump, psql и т.д.
При этом операцию backup, restore надо и так делать при переходе на 8.3. 
 

Comment 40 Станислав Коробейников 2008-12-25 17:54:10 MSK
Закончил с пачами. Закомитил.
Comment 41 Калюхович Юрий 2008-12-25 20:51:19 MSK
попробовал на lin-test
первое, что непонятно - в какой момент запускать скрипт? после установки уже нового постгри - не получится, до - не сможет заменить наш mchar
второе - при установке нового постгри как задать пароль? старый вариант не работает (# psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'новый пароль'")
Comment 42 Станислав Коробейников 2008-12-26 10:41:15 MSK
(In reply to comment #41)
> попробовал на lin-test
> первое, что непонятно - в какой момент
> запускать скрипт? 
> после установки уже
> нового постгри - не получится, 
Почему не получится? Я думал так.
Но можно разбить на две части. 
1. Создание дампа. Пач дампа.
2. Ресторе. (Удаление, создание, выполнение скриптов)
>до - не сможет заменить наш mchar
Я вообще на win2k3 менял на 8.2, получалось, ошибок, по крайней мере, не было.
> второе - при установке нового постгри как
> задать пароль? старый вариант не работает (#
> psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'новый
> пароль'")
Поменял пароль на testing
#/usr/bin/psql -d postgres -U postgres
#\password postgres




Comment 43 Калюхович Юрий 2008-12-26 13:47:35 MSK
итак, делим скрипт на 2 части: 1-я делает дамп и патчит его, 2-я заливает в новый постгри; и проверяем работоспособность.
Comment 44 Калюхович Юрий 2008-12-26 14:29:07 MSK
апгрейд постгри с 8-2-11 до 8-3-5 на linux полностью работает
Comment 45 Калюхович Юрий 2008-12-26 14:38:45 MSK
проверить под винду пока нет возможности ввиду проблем со сборкой
Comment 46 Калюхович Юрий 2008-12-26 16:06:08 MSK
прогнал сельту свежей сборки на постгри 8.3.5 (lin-test) по основным конфигурациям - бух, зик и тис, при выполнении основных операций (загрузка/выгрузка, перепроведение, пересчет итогов, формирование отчетов) ошибок не замечено
Comment 47 Boris Savelev 2008-12-27 14:07:12 MSK
(In reply to comment #45)
> проверить под винду пока нет возможности
> ввиду проблем со сборкой
> 

для винды собрал
Comment 48 Калюхович Юрий 2009-01-14 19:39:49 MSK
(In reply to comment #47)
> (In reply to comment #45)
> > проверить под винду пока нет возможности
> > ввиду проблем со сборкой
> > 
> 
> для винды собрал
> 

проверил обновление под виндой (win2k3). скрипты обновления работают, но: сельта с фтп из 1.0.5 не может обновить базу под новую версию постгри - или не видит, что все обновилось, т.к. предлагает снова обновить
Comment 49 Калюхович Юрий 2009-01-14 19:45:54 MSK
из current'a на фтп нужно удалить сборку сельты, а то там вообще еще 1.0.4 лежит
Comment 50 Калюхович Юрий 2009-01-14 19:59:53 MSK
> проверил обновление под виндой (win2k3).
> скрипты обновления работают, но: сельта с
> фтп из 1.0.5 не может обновить базу под новую
> версию постгри - или не видит, что все
> обновилось, т.к. предлагает снова обновить
> 

нет, не апгрейдит, и в pg_selta_version постгри так и остается 8.2.11
Comment 51 Калюхович Юрий 2009-01-15 16:16:17 MSK
в свежей сборке тоже не апгрейдит :(
Comment 52 Калюхович Юрий 2009-01-15 17:11:04 MSK
исправили. полностью обновил от (постгри8.2.11 + сельта1.0.4) -> до (постгри8.3.5 + сельта1.0.5) и запустил, все работает