Sono in esecuzione un'app Rails con tre server Web e un server di database (un server RDS AWS). Mi schiero con Chef Solo. Attualmente imposto "migrate true" nella mia ricetta rails_app e "rake db: migrate" viene eseguito una volta su ciascun server web.Con Chef, come faccio a eseguire una migrazione Rails solo una volta?
Questo di solito non è un problema quando le migrazioni sono brevi. (Il primo ha esito positivo e il secondo e il terzo vengono saltati perché la tabella schema_migrations elenca la versione dello schema più recente.) Ma quando la migrazione richiede molto tempo, il secondo e il terzo server Web tentano di eseguire una migrazione prima che il primo sia terminato . Falliscono e lo chef esce senza successo. Si noti che la migrazione è riuscita (almeno quando l'ho provata), ma la distribuzione complessiva della nuova versione ha esito negativo. (Se lo eseguo di nuovo, tutto funziona correttamente quando la migrazione è già stata eseguita.)
La mia domanda è, qual è il modo migliore/canonico per garantire che la migrazione venga eseguita una sola volta?
Si potrebbe ascoltare quel podcast: http://foodfightshow.org/2013/01/application-deployment.html – StephenKing