Сценарий, безусловно, недопустим для неожиданных ошибок в работе. Просто потому, что это производство, и мы хотим быть уверены, что все в порядке.
Что касается ожидаемых ошибок, это вопрос вкуса. Некоторые сценарии DDL выглядят так:
create table t23
(id number not null
, description not null varchar2(30)
, constraint t23_pk primary key (id))
/
prompt patch for ticket #42
alter table t23
add active_flag char(1) default 'N' not null
/
Когда этот сценарий развертывается в качестве обновления в рабочей среде, create
завершается ошибкой, поскольку таблица уже существует. При условии, что это ожидается, я думаю, что это приемлемо. Но, несомненно, это портит файл журнала скрипта, что затрудняет проверку успешности обновления. Вот почему многие люди предпочитают отдельный скрипт патча, который просто применяет дельту и поэтому состоит из операторов, которые должны быть успешными.
1012 * редактировать *
Это аргумент в пользу наличия сценариев
что чисто? При обновлении
Производственная система, вы действительно хотите
DBA (кто может или не может знать
что-нибудь о системе) делая
решения о том, какие ошибки в порядке?
Конечно, это может быть такой аргумент. Различные правила применяются, когда человек, который написал сценарии обслуживания, также запускает их в производстве по сравнению с проектами, в которых исправления применяются сторонними администраторами баз данных в размещенной среде. В этом последнем случае ясность имеет первостепенное значение.