Frage

Ich bin developping eine django app auf Windows, SQLite und den django dev-Server. Ich habe es zu meinem Host-Server bereitgestellt, die Linux läuft, Apache, FastCGI, MySQL.

Leider habe ich einen Fehler von dem Server, auf dem prod während alles in Ordnung auf dem Dev-Maschine zurück. Ich habe meinen Provider für eine Vorproduktion Lösung, um zu debuggen zu können, gefragt und verstehen, das Problem.

Wie auch immer, was nach Sie die wahrscheinlichsten Fehler, die passieren kann, wenn ein django app von dev bewegen prod?

Best

Update: Ich denke, dass ein Pre-prod ist der beste Weg, diese Art von Problem zu lösen. Aber ich möchte eine Checkliste von bauen, was getan werden muss, bevor sie in Produktion zu setzen. Vielen Dank für die sehr wertvolle Antworten, die ich bisher erhalten:)

Update: FYI, ich habe den preprod-Server und die E-Mail-Benachrichtigung implementiert‘, wie es Shanyu vorgeschlagen, und ich kann sehen, dass der Fehler von dem kommt smart_if TemplateTag , die ich auf diese neue Version verwenden. Jeder Trick mit Template-Tags?

Update: Ich glaube, ich habe das pb befestigt, die verursacht wurde, glaube ich, durch die Filezilla FTP senden. Ich war mit der „ersetzen, wenn neueren“ Option, die ich denke, ist einige unerwarteten Ergebnisse verursachen. Mit Hilfe der „ersetzen all“ Option behebt das Problem. Allerdings war es eine Gelegenheit für mich mehr über Einsatz zu lernen. Thansk für Ihre Antworten.

War es hilfreich?

Lösung

Probleme wir haben in der Regel umfassen:

  1. Misconfigured Produktionen Einstellungen, ob in meiner Produktion localsettings.py, wsgi / cgi oder Apache-Site-Dateien in / etc / sites-available
  2. Datenbank Unterschiede. Ich benutze Süd für Migrationen und haben in einigen subtilen Probleme stoßen, wenn meine Migration auf PostgreSQL auszuführen, wenn es funktionierte reibungslos in sQLite.
  3. Statische Datei-Hosting, da ich betrügen und den Django-Server in der Entwicklung verwenden
  4. Berechtigungen sowohl auf das Dateisystem und in der Datenbank
  5. Selten, aber möglich, Netzwerkprobleme mich zu verhindern, dass meine Abhängigkeiten bekommen, ob auf PyPI oder eine 3rd-Party-Website

Ways, dass ich diese Probleme gemildert haben:

  • Verwenden Sie die gleiche Datenbank in der Produktion und Entwicklung (in Ihrem Fall, MySQL überall)
  • habe ich es für sinnvoll ist es, eine „Test“ Umwelt zu haben, die Produktion in jeder möglichen Weise nachahmt (es kann auf dem unteren End-Hardware sein, oder sogar die gleiche Maschine). Auf diese Weise, wenn es irgendwelche Probleme in diesem „produktionsähnlichen“ enivornment ist, kann ich sie lösen, ohne meine Produktionsserver offline zu nehmen.
  • Script alles für wiederholbare Implementierungen. Ich benutze Gewebe , aber zc.buildout oder Fertiger würde auch funktionieren. Diese Tools helfen Fehler zu reduzieren, während die Bereitstellung und reduzieren die Zeit, um meine app zu implementieren.
  • Verwenden Sie die Versionskontrolle (Mercurial, Git, Subversion) und ein Schema Migration Tool (wie Süd), so dass, wenn etwas schief geht, wenn Sie für die Produktion bereitstellen, haben Sie die Möglichkeit, die Änderungen der Sicherung und ermöglicht die Produktion auf laufen der alte Code mit dem alten Datenbankschema.
  • Ich habe nicht ein " Ei Proxy " noch nicht, aber ich bin am überlegen es, Probleme zu vermeiden, wenn Abhängigkeiten heruntergeladen werden.
  • habe ich gefunden Pip Einfrieren Abhängigkeiten nützlich zu sein, falls eine neue, inkompatible Wechsel zu einer Bibliothek aufgetreten, da ich es zunächst heruntergeladen
  • Verwenden Sie einen Web-Test-Framework wie Windmühle oder Selen meine Anwendung in meiner „test“ Umgebung zu testen, so dass ich sehr schnell eine Menge Testabdeckung meines Systems erhalten.

Andere Tipps

Ihr Fall betrifft, so kann ich mir vorstellen 2 einfache Dinge, die Ihnen helfen können:

  1. Sie können Django ermöglichen, Nachrichten zu senden, wenn Ausnahmen geben Details über sie auftreten. Schauen Sie sich hier .
  2. werden Sie besser dran, wenn Sie eine Testumgebung auf dem prod-Server eingerichtet (sagen wir, test.example.com), so dass Sie überprüfen können, ob die Dinge glatt oder nicht gehen, bevor Sie die App bereitstellen.

Ich glaube, das sind die Podcasts waren ich kürzlich hörte (von PyCon 2009):

  

Wir liegen Django in der realen Welt (PyCon 2009):

     

http://advocacy.python.org/podcasts/pycon.rss

     

Die Teile 1 bis 3

Sehr gute Einführung Ihre Anwendungen für die Bereitstellung auf der Gestaltung, insbesondere für die Wiederverwendung und Umschichtung.

Regs.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top