Имя: Пароль:
1C
1С v8
Postgres сошел с ума
, ,
0 bdenisska
 
22.04.19
10:22
1. Нет 50% (1)
2. Опишите подробнее конфигурации 50% (1)
3. Да 0% (0)
Всего мнений: 2

Здравствуйте, интересная пища для размышлений профессиональной аудитории 1С разработчиков и администраторов.

Один сервер postgres. Один и тот же дамп БД.
В одну базу льется без проблем, в другую выдает

$ sudo -u postgres dropdb WN
$ sudo -u postgres createdb WN
$ sudo -u postgres pg_restore -d WN /home/user/W.dump
pg_restore: [архиватор (БД)] Ошибка при обработке оглавления:
pg_restore: [архиватор (БД)] Ошибка из записи оглавления 1712; 1255 9371563 FUNCTION vassn(boolean) postgres
pg_restore: [архиватор (БД)] could not execute query: ОШИБКА:  функция "vassn" с аргументами таких типов уже существует
    Выполнялась команда: CREATE FUNCTION public.vassn(boolean) RETURNS integer
    LANGUAGE plpgsql
    AS $_$
DECLARE bexpr alias for $1;
BEGIN
if b...
^Cpg_restore: terminated by user
$ sudo -u postgres dropdb WNN
dropdb: ошибка при удалении базы данных: ОШИБКА:  база данных "WNN" не существует
$ sudo -u postgres createdb WNN
$ sudo -u postgres pg_restore -d WNN /home/user/W.dump

Кто либо сталкивался с таким поведением?
6 bolero
 
22.04.19
17:37
(0) у тебя в одном кластере в template1 уже есть vassn, а в другом - нет.

В первом кластере поковырялся 1с-сервер с правами postgres, а в другом - нет.

Чтобы поведение всегда было стабильное, я у себя в каждом кластере держу базку template_1c, и новые пустые базы создаю так:

create database bp owner onec template template_1c;

Если 1с сервер запустить в огород с правами postgres - как правило с автоматизацией развертывания бэкапов потом начинается веселье.

Конкретный набор требуемых функций и их содержание может сильно отличаться у разных пар версий 1с сервера и pgsql сервера. Поэтому при переезде на новую платформу (с 8.12 на 8.13 например), или новый релиз pgsql (с 9 на 10 например), template_1c пересоздаю на тестовом сетапе под конкретную пару.

Нет