Но я пока продолжу сидеть на 12 версии...
Во-первых, потому что у меня managed база в облаке, а там все происходит небыстро (хотя в azure, говорят, уже есть)
А во-вторых, есть еще одна проблема, о которой я хотел бы сегодня рассказать.
Проблема называется error messages.
В Postgresql сообщения об ошибках далеки от идеала. Ты получаешь код ошибки и текстовое описание, в которое засунули sprintf'ом все нужные константы.
Т.е. если твой запрос может выкинуть один и тот же код ошибки по разным причинам, то единственное, что остается, это ассертить строку с ошибкой.
null value in column "column1" of relation "table1" violates not-null constraintКруто бы было, если бы "column1" и "table1" возвращались в отдельных параметрах, но жизнь такова, какова она есть, и больше ни какова.
Отдельная интересная задача - узнать все возможные сообщения об ошибках статическими методами, по тексту запроса. Такое когда-то планировалась сделать в рамках holistic.dev ...
Так вот, от версии к версии формат сообщений об ошибках тоже может меняться!
И если вам важна причина возникновения ошибки, то привет. Нужно переделывать все ассерты:
-- pg 13Возможно, вы хотите сказать: "какая нафиг разница какая ошибка, падай в 500 да и все".
null value in column "column1" of relation "table1" violates not-null constraint
-- pg 12
null value in column "column1" violates not-null constraint
Но это только потому, что вы не видели моих запросов :)