aws codedeploy — запуск sql-скриптов

Я запускаю свои сценарии sql, которые вставляют данные в БД как часть события жизненного цикла codedeploy в группе Autoscaling. Группа автоматического масштабирования имеет 2 экземпляра, сценарии sql работают нормально на 1-м экземпляре, и развертывание на этом экземпляре прошло успешно. Во втором случае, поскольку в БД уже вставлены данные, сценарий sql завершается с ошибкой ниже:

[stderr] ОШИБКА 1062 (23000) в строке 32: повторяющаяся запись

Любое обходное решение или решение будет очень полезно.

Спасибо


person Name_me    schedule 27.10.2017    source источник


Ответы (2)


Это говорит о том, что в БД уже есть запись, которую вы пытаетесь вставить, отсюда и эта ошибка. Вы можете сначала проверить, есть ли в БД эта запись или нет.

Чтобы определить, какая часть сценария вызывает эту ошибку, вы можете попытаться создать подмножество своего сценария и определить фактическую причину.

Это, безусловно, проблема, когда у вас уже есть некоторые записи, а БД/таблица/схема не допускает дублирования записи.

person Vivek Jain    schedule 27.10.2017

Предполагая, что ваша группа развертывания относится к типу развертывания OneAtATime, тогда ваш обработчик жизненного цикла должен проверять наличие записи перед вставкой SQL.

Таким образом, изменение будет применено только к первому развернутому экземпляру. Другие развертывания проверят запись, а затем пропустят фазу вставки кода.

person Rodrigo M    schedule 04.11.2017