Eine schlechte Seite des Pushing zu Heroku ist, dass ich den Code schieben muss (und der Server startet automatisch neu) vor dem Ausführen meiner db-Migrationen.Hot-Bereitstellung auf Heroku ohne Ausfallzeit
Dies kann offensichtlich 500 Fehler bei Benutzern verursachen, die die Website mit dem neuen Code ohne die neuen Tabellen/Attribute navigieren: Die von Heroku vorgeschlagene Lösung ist die Verwendung des Wartungsmodus, aber ich möchte einen Weg ohne Nachteile meiner Webapp läuft immer!
Gibt es einen Weg? Zum Beispiel mit Capistrano:
- ich den Code bereite in einem neuen Verzeichnis
- Ich betreiben (rückwärts) Migrationen und den alten Code weiter arbeiten perfekt
- ich swith Mischlings Instanz mit dem neuen Verzeichnis zu implementieren und Neustart des Servers
... und ich habe keine Ausfallzeit!
Hallo Shingara, Es tut mir leid, aber ich mit Ihnen nicht einverstanden sind. Ich möchte nicht Load Balancing dafür verwenden: eine der großen Funktionen von Heroku ist die "trasparent" Cloud-Power aus Notwendigkeit und ich möchte diese Funktion verwenden ... Um das Gleichgewicht in Heroku zu laden, muss ich zwei beibehalten Verschiedene Apps und eine schreibgeschützte Datenbank können Probleme für meine Benutzer verursachen. Und ein System ohne Ausfallzeiten ist nicht immer unmöglich. Ich habe das System richtig und ohne Ausfallzeit erklärt. Im Falle einer großen Änderung ohne die Möglichkeit eines retro-kompatiblen DB-Schemas kann ich eine Wartungsseite verwenden: aber das sind die 5% aller meiner Fälle ... – zetarun
Sie können das in dieser Antwort beschriebene Problem vermeiden, indem Sie CouchDB verwenden, beispielsweise. – iconoclast