Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
Например удаление тригера, индекса и тп.

Сейчас создал индекс и удалил его - никаких записей в лог не записалось.

А хочется.
21 апр 17, 11:40    [20421597]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
Нахлобуч
Member

Откуда: https://hglabhq.com
Сообщений: 3927
Пооткручивать руки всем личностям, выполняющим DDL на боевых БД в обход миграций из VCS.
21 апр 17, 11:46    [20421629]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ursido
Member

Откуда:
Сообщений: 309
ЖEHbKA,

Читайте RTFM. Вам нужен:

автор
log_statement = 'ddl'
21 апр 17, 11:48    [20421642]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
ursido
ЖEHbKA,

Читайте RTFM. Вам нужен:

автор
log_statement = 'ddl'



Спасибо, друг!!!
21 апр 17, 11:50    [20421653]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
Еще, вопрос.

Если его через ALTER SYSTEM изменить - в конфиге он же не поменяется?


А как сделать скриптом чтобы он и в конфиге изменился?
21 апр 17, 12:02    [20421691]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
ЖEHbKA
Еще, вопрос.

Если его через ALTER SYSTEM изменить - в конфиге он же не поменяется?


А как сделать скриптом чтобы он и в конфиге изменился?



Не в postgresql.auto.conf, а в postgresql.conf
21 апр 17, 12:13    [20421735]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 3316
ЖEHbKA
ЖEHbKA
Еще, вопрос.

Если его через ALTER SYSTEM изменить - в конфиге он же не поменяется?


А как сделать скриптом чтобы он и в конфиге изменился?



Не в postgresql.auto.conf, а в postgresql.conf


Никак. Или postgresql.auto.conf или ЧТО СИЛЬНО правильнее - руками редактировать postgresql.conf
За ALTER SYSTEM на production базе - надо расстреливать пожизненно.

--
Maxim Boguk
dataegret.ru
21 апр 17, 16:15    [20423092]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
Maxim Boguk
ЖEHbKA
пропущено...



Не в postgresql.auto.conf, а в postgresql.conf


Никак. Или postgresql.auto.conf или ЧТО СИЛЬНО правильнее - руками редактировать postgresql.conf
За ALTER SYSTEM на production базе - надо расстреливать пожизненно.



auto.conf не очень, т.к. там сбросить можно скриптом.
24 апр 17, 12:30    [20428533]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
Еще вопрос:


Как сделать чтобы при фиксации dll писалась информации о выполнившим?




Сейчас пишется примерно такое:


2017-04-21 11:31:38 ВНИМАНИЕ: DROP INDEX public.hkjhkjh


и все.

а кто это сделал - непонятно.
24 апр 17, 12:33    [20428548]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
log_line_prefix - это то?
24 апр 17, 12:41    [20428593]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ЖEHbKA
Member [заблокирован]

Откуда:
Сообщений: 150
ЖEHbKA
log_line_prefix - это то?



это оказалось тем. что нужно.



Единственное, не понимаю что это такое в параметре:

%%



Зачем оно?

просто чтобы сообщение начиналось с символа '%' или еще какой-то смысл в этом есть?
24 апр 17, 13:13    [20428807]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
ursido
Member

Откуда:
Сообщений: 309
ЖEHbKA,

Нет. Это если вдруг кто-то в префиксе пожелает вывести символ %, то его нужно удвоить.
Если этого не делать, что символ % будет восприниматься в качестве плейсхолдера. Соответственно, символ % не выведется как символ.
24 апр 17, 13:58    [20429142]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать чтобы DDL писался в лог?  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 3316
ЖEHbKA
ЖEHbKA
log_line_prefix - это то?



это оказалось тем. что нужно.



Единственное, не понимаю что это такое в параметре:

%%



Зачем оно?

просто чтобы сообщение начиналось с символа '%' или еще какой-то смысл в этом есть?


А документацию почитать вам религия не позволяет?
https://www.postgresql.org/docs/9.6/static/runtime-config-logging.html#GUC-LOG-LINE-PREFIX

--
Maxim Boguk
dataegret.ru
24 апр 17, 14:05    [20429195]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить