Должен ли пакет сценария после установки запускать миграцию базы данных?

Итак, у меня есть этот пакет debian, который устанавливает некоторое веб-приложение приложения nodejs, которое использует базу данных mysql. В пакете есть сценарий postinst, который запускает команду db migrate в комплекте с пакетом.

Теперь я хочу разделить приложение на несколько серверов (2 внешних интерфейса и 1 серверная часть базы данных). Проблема, с которой я сталкиваюсь, заключается в том, что оба интерфейсных сервера будут пытаться обновить схему одновременно при развертывании новых пакетов. Мне это кажется неправильным.

Кроме того, это как бы создает зависимость между пакетом и запущенным сервером mysql. Мне это тоже не кажется правильным.

Каковы хорошие способы достижения автоматического обновления схемы базы данных, когда этого требует новый пакет?

0
задан 15 June 2016 в 23:41
1 ответ

Entweder sollte das Paket das DB-Schema automatisch aktualisieren, oder es sollte Anweisungen zur manuellen Ausführung enthalten und klar angeben, dass dies ein erforderlicher Schritt ist.

Wenn dies für das gilt Auto-Upgrade-Methode, dann sollte überprüft werden, ob das Schema bereits aktualisiert wurde; und wenn es auf mehreren Servern installiert werden soll, die eine einzelne Datenbank gemeinsam nutzen, sollte es entweder eine Art Sperre verwenden oder explizit angeben, dass "dieses Paket nicht auf allen Servern gleichzeitig aktualisiert werden soll".

TL ; DR: Ihr Paket scheint unter verzögerter Programmierung und / oder verzögerter Dokumentation zu leiden.

1
ответ дан 4 December 2019 в 16:35

Теги

Похожие вопросы