сходу много патчей не прикладывается. особенно волнует 1c_FULL_82-0.13.patch в остальных необходимо внести незначительные изменения
надо попробовать приложить 1c_FULL_82-0.18.patch часть функционала уже добавлена в 8.3. можно собирать contrib/mchar отдельно от патча.
в 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
1с готовит выпуск 8.3 есть тестовая сборка. написал письмо, может патчи дадут...
не дают патчи пока. сказали ждать пока релиз будет-(
Патчи 8.3 уже в свободном доступе http://www.v8.1c.ru/overview/postgres_patches_notes.htm ждем сборок !!! p.s. Особенно ubuntu/debian !!!
спасибо. займусь в отпуске-)
как будет время, проверьте с сельтой
А сельта умеет работать с 8.3 ? Помоему она на версию PG ругается ;-(
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
Я попробовал поставить под Альтлинукс. Старую пакеты были предварительно удалены. Libpq поставил последний из достопных в сизифе. Все нормально поставилось, но старт не удался. Появилось сообщение о том, что база старая и надо обратиться к мануалу, чтобы обновить версию базы, но я пока не нашел о чем именно идет речь.
> libpq5 конфликтует и postgresql8.3.1c-libs_8.3.3-1_i386.deb > Естественно. Так всегда было. > Появилось сообщение о том, что база старая > и надо обратиться к мануалу, чтобы обновить > версию базы, но я пока не нашел о чем именно > идет речь. > Старую, для тестов можно снести. Естественно новая СУБД со старой базой не работает. Обновлять в данном случае смысла нет.
Установил. Первая проблема была при задании пароля пользователю postgres. psql: FATAL: Ident authentication failed for user "postgres" Вписал в pg_hba.conf: host all all trust. Это помогло. Запустил Сельту, при попытке подключиться сообщила, версия субд старая, скачайте по ссылке новую (указывала на 8.2), но окно открыла (внизу постоянно висит окно, в котором сообщается что база не соответствует), из действий позволено только обновлять список.
Да не всегда... Сейчас в 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 уже стоит!
(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
поставил PostgreSQL 8.3.3 на testing, запустился и работает
со стороны сельты создание, инициализация/деинициализация и удаление базы успешно, дальше тестируем с 1С
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. Выводы делай сам-)
поставил PostgreSQL 8.3.5 ; создание, инициализация/деинициализация, удаление базы с помощью сельты успешно. дальше снова тестируем с 1С
А как производительность 1с v77 ? И когда будут сборки под ubuntu ?
изменил вспомогательные скрипты, прогнал по конфигурациям бух, тис и зик - в последней обнаружилась ошибка: выбираем Отчеты->расчетные листки->по списку сотрудников заполнить штатными сотрудниками -> сформировать => получаем ошибку XX000 could not find member 1(56175, 56175) of opfamily а затем невосстановимую ошибку бд
Created attachment 959 [details] лог трассировки
Created attachment 960 [details] лог сельты
Created attachment 961 [details] обновленный вариант скрипта mchar.sql
(In reply to comment #20) > изменил вспомогательные скрипты, прогнал > по конфигурациям бух, тис и зик - в > последней обнаружилась ошибка: > выбираем Отчеты->расчетные листки->по > списку сотрудников заполнить штатными > сотрудниками -> сформировать => получаем > ошибку XX000 could not find member 1(56175, 56175) of opfamily > а затем невосстановимую ошибку бд на старом постгри (8.2.11) таких проблем нет
упрощенный запрос с такой же ошибкой - SELECT CJ447.IDDOC FROM CJ447, _1SJOURN where right(CJ447.IDDOC, 9)=_1SJOURN.IDDOC; ошибка связана со сравнением результата right () и поля _1SJOURN.IDDOC, сама right работает; у нас эта ф-ция была для типа mvarchar, добавление ее же для mchar решило проблему
добавил также функции left для mchar и mvarchar; дополнил скрипт uninstall_mchar.sql. теперь создание, иниц/деиниц. и удаление без ошибок, заново прогнал по трем конфигурациям (бух,тис,зик - загрузка/выгрузка,выполнение типовых операций) - без ошибок
1. Не забыть описание процедуры обновления на PG 8.3 при имеющихся базах. 2. Учесть, что mchar.sql теперь должен выбираться в зависимости от версии PG.
(In reply to comment #27) > 1. Не забыть описание процедуры обновления > на PG 8.3 при имеющихся базах. > 2. Учесть, что mchar.sql теперь должен > выбираться в зависимости от версии PG. Да, сделал это. Еще не протестировал. Протестирую, закоммичу.
Добавил в msi все новые копирования. Немного изменил в связи с этим сам initdb. Исправил в нем некоторые ошибки.
Все изменения закоммитил (кроме нового 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
Надо написать мануал, как переходить на 1.0.5, если изменилось Postgre и если не изменилось, и что нужно сделать при обновлении Postgre до 8.3 И надо небольшой хелп по тому, как менять версии (что, где менять в коде)
(In reply to comment #31) > И надо небольшой хелп по тому, как менять > версии (что, где менять в коде) Начало есть в README в корне проекта. Думаю, тебе надо написать на вики, пользуясь своими знаниями и удалить из README.
(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
закоммитил изменения в скриптах. обнаружилась проблема - неправильное обновление баз - неправильная ре-инициализация баз при обновлении версии постгри
Сделал так, что бы обновлялся mchar не через uninstall - install (так как удалялись все связанные с типом поля), а через update. Но появилась другая проблема. ALTER TYPE меняет только owner и schema. DROP без CASCADE не делается, а с CASCADE удалает все связанное.
Теперь обновлятся будет так: делается dump с sql коммандами изменяется в нем mchar заливается обратно написал Makefile, что бы это делалось для Linux написал програмку и bat файл, что бы это делалось для win
Надо выложить и написать к этому небольшой мануал
(In reply to comment #36) > Теперь обновлятся будет так: > делается dump с sql коммандами > изменяется в нем mchar > заливается обратно > > написал Makefile, что бы это делалось для Linux А почему не просто скрипт? > написал програмку и bat файл, что бы это > делалось для win Что за программка? Наверное эта функциональность должна быть реализована в той утилите командной строки, которая у нас уже есть.
(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.
Закончил с пачами. Закомитил.
попробовал на lin-test первое, что непонятно - в какой момент запускать скрипт? после установки уже нового постгри - не получится, до - не сможет заменить наш mchar второе - при установке нового постгри как задать пароль? старый вариант не работает (# psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'новый пароль'")
(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
итак, делим скрипт на 2 части: 1-я делает дамп и патчит его, 2-я заливает в новый постгри; и проверяем работоспособность.
апгрейд постгри с 8-2-11 до 8-3-5 на linux полностью работает
проверить под винду пока нет возможности ввиду проблем со сборкой
прогнал сельту свежей сборки на постгри 8.3.5 (lin-test) по основным конфигурациям - бух, зик и тис, при выполнении основных операций (загрузка/выгрузка, перепроведение, пересчет итогов, формирование отчетов) ошибок не замечено
(In reply to comment #45) > проверить под винду пока нет возможности > ввиду проблем со сборкой > для винды собрал
(In reply to comment #47) > (In reply to comment #45) > > проверить под винду пока нет возможности > > ввиду проблем со сборкой > > > > для винды собрал > проверил обновление под виндой (win2k3). скрипты обновления работают, но: сельта с фтп из 1.0.5 не может обновить базу под новую версию постгри - или не видит, что все обновилось, т.к. предлагает снова обновить
из current'a на фтп нужно удалить сборку сельты, а то там вообще еще 1.0.4 лежит
> проверил обновление под виндой (win2k3). > скрипты обновления работают, но: сельта с > фтп из 1.0.5 не может обновить базу под новую > версию постгри - или не видит, что все > обновилось, т.к. предлагает снова обновить > нет, не апгрейдит, и в pg_selta_version постгри так и остается 8.2.11
в свежей сборке тоже не апгрейдит :(
исправили. полностью обновил от (постгри8.2.11 + сельта1.0.4) -> до (постгри8.3.5 + сельта1.0.5) и запустил, все работает