Capistrano bereitstellen rails-Anwendung - zu behandeln, wie lange Migrationen?
So, ich bin mit Capistrano für die Bereitstellung einer rails-Anwendung auf meinem produktiven server (apache+passenger) und im moment der Bereitstellung geht in der Regel entlang der Linien:
$cap deploy
$cap deploy:migrations
Er hat mich gefragt, sagen wir mal meine db:Migration dauerte eine lange Zeit zum ausführen auf den Produktions-server (eine große Umgestaltung des db-Schemas) - in diesem Fall, was ist die beste Praxis mit Capistrano? Was passiert, wenn Benutzer verbunden sind, um meine Bewerbung zum Zeitpunkt der Bereitstellung? Sollte ich anmutig senden Benutzer eine statische Platzhalter-Seite, während die Datenbank aktualisiert wird? Nicht Capistrano behandeln dies automatisch? Muss ich code ein Rezept zu helfen, mit dieser? Oder hat die internen Mechanismen von rails /passenger bedeuten, dass ich nicht haben, um sorgen über diesen speziellen Fall?
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie eine Wartung der Seite, wenn die Anwendung wird nicht verfügbar sein für eine Weile. Ich benutze diese Capistrano-task:
Den
app/views/admin/maintenance.html.erb
Datei sollte enthalten:Der Letzte Schritt ist die Konfiguration des Apache virtual host mit einigen Richtlinien zu suchen, die
maintenance.html
- Datei und leiten alle Anfragen an, falls es vorhanden ist:Um die Anwendung in den Wartungsmodus ausführen
cap deploy:web:disable
zu machen, und wieder Leben tuncap deploy:web:enable
.enable
Aufgabe!enable
Aufgabe wurde in Capistrano selbst, so gibt es keine Notwendigkeit, geben Sie es explizit überschreiben, es sei denn, es.Meine Produktion setzt in der Regel Folgen Sie diesem Verfahren:
cap production deploy:web:disable
der leitet alle Anfragen auf eine statische Seite " Wartungcap production deploy
cap production deploy:web:enable
um die Website so funktionieren, wie es sollteJohn Topley Antwort gibt Ihnen einige gute in der Tiefe Informationen hier.