Używam aplikacji Rails z trzema serwerami WWW i jednym serwerem bazy danych (serwer AWS RDS). Rozstawię z szefem kuchni Solo. Obecnie ustawiam "migrate true" w mojej recepturze rails_app, a "rake db: migrate" uruchamia się raz na każdym serwerze sieciowym.Z szefem kuchni, jak uruchomić migrację Railsów tylko raz?
Zwykle nie stanowi to problemu, gdy migracja jest krótka. (Pierwszy z nich kończy się sukcesem, a drugi i trzeci są pomijane, ponieważ tabela schema_migrations zawiera najnowszą wersję schematu.) Jednak gdy migracja trwa długo, drugi i trzeci serwer WWW podejmują próbę migracji przed ukończeniem pierwszej. . Zawodzą, a szef kuchni kończy bezskutecznie. Zwróć uwagę, że migracja powiodła się (przynajmniej gdy ją wypróbowałem), ale ogólne wdrożenie nowej wersji nie powiedzie się. (Jeśli uruchomię go ponownie, wszystko powiedzie się, ponieważ migracja została już uruchomiona.)
Moje pytanie brzmi, jaki jest najlepszy/kanoniczny sposób, aby migracja była przeprowadzana tylko raz?
Możesz posłuchać tego podcastu: http://foodfightshow.org/2013/01/application-deployment.html – StephenKing