Когда я запускаю это из сеанса терминала:
=> psql "$pg_cp_prod_conn_str"
и затем выполняю:
=> ALTER TABLE cp_user_emails
ADD CONSTRAINT email_too_long_ln_check CHECK (char_length(TRIM(email)) < 320);
, то происходит сбой с:
ограничение " email_too_long_ln_check "для отношения" cp_user_emails "уже существует
, но если я выполню это:
psql "$pg_cp_prod_conn_str" -c "$(<<EOF
ALTER TABLE cp_user_emails
ADD CONSTRAINT email_non_zero_ln_check CHECK (char_length(TRIM(email)) > 4);
ALTER TABLE cp_user_emails
ADD CONSTRAINT email_too_long_ln_check CHECK (char_length(TRIM(email)) < 321);
EOF
)"
, тогда запрос" успешно "и сообщения об ошибке нет! но когда я смотрю на БД, он такой же, как и раньше, поэтому он явно либо не достигает БД, либо молча терпит неудачу ..
, так почему это не запрос / сбой / выход с 1 с сообщением об ошибке когда я запускаю его как скрипт, а не прямо в терминале?