djangoアプリをdevからprodに移動する際の一般的なエラーは?
-
22-07-2019 - |
質問
Windows、SQLite、およびdjango devサーバーでdjangoアプリを開発しています。 Linux、Apache、FastCgi、MySQLを実行しているホストサーバーに展開しました。
残念なことに、devマシンですべてが正常に動作している間に、prodのサーバーからエラーが返されます。問題をデバッグして理解できるようにするために、プロダクションソリューションをプロバイダーに依頼しました。
とにかく、Djangoアプリをdevからprodに移動するときに発生する可能性が最も高いエラーは何ですか?
ベスト
更新:この種の問題に対処するには、pre-prodが最善の方法だと思います。しかし、私は実稼働環境に入れる前に何をしなければならないかのチェックリストを構築したいと思います。 これまでに受け取った非常に貴重な回答をありがとう:)
更新:参考までに、shanyuが提案するpreprodサーバーと電子メール通知を実装しました。エラーは smart_if templatetag この新しいバージョンで使用しています。テンプレートタグのトリックはありますか?
更新:Filezilla FTPの送信によって生じたと思われるpbを修正したと思います。 「新しい場合は交換」を使用していました。私が推測するオプションは、いくつかの予期しない結果を引き起こしています。 「すべて置換」を使用してオプションは問題を修正します。しかし、展開について詳しく知る機会になりました。答えてくれてありがとう。
解決
私が通常抱えている問題:
- 本番のlocalsettings.py、wsgi / cgi、または/ etc / sites-availableのapacheサイトファイルに関係なく、本番環境の設定が間違っている
- データベースの違い。移行には South を使用します。 sqlite。
- 開発中にDjangoサーバーをチートして使用しているため、静的ファイルのホスティング
- ファイルシステムとデータベース内の両方のアクセス許可
- まれですが、可能性のあるネットワークの問題により、PyPiやサードパーティのサイトに関係なく、依存関係を取得できません
これらの問題を軽減した方法:
- 本番と開発で同じデータベースを使用します(あなたの場合、どこでもMySQL)
- 「テスト」を行うと便利だとわかりました。可能な限りあらゆる方法で本番環境を模倣する環境(低価格のハードウェア、または同じマシンでも可能です)。このように、この「本番のような」問題が発生した場合、 enivornment、私は私の実稼働サーバーをオフラインにすることなくそれらを解決できます。
- 繰り返し可能な展開のためにすべてをスクリプト化します。 fabric を使用していますが、zc.buildoutまたはPaverも機能します。これらのツールは、デプロイ中のタイプミスを減らし、アプリをデプロイする時間を短縮するのに役立ちます。
- バージョン管理(mercurial、git、subversion)およびスキーマ移行ツール(Southなど)を使用するため、運用環境にデプロイするときに何か問題が発生した場合、変更を取り消して運用を実行できる可能性があります古いコードと古いデータベーススキーマ。
- " eggプロキシ"まだですが、依存関係をダウンロードする際の問題を回避するために検討しています。
- pipの依存関係をフリーズすると、新しい互換性のないものがある場合に便利です。最初にダウンロードしてからライブラリへの変更が発生した
- WindmillやSeleniumなどのWebテストフレームワークを使用して、「テスト」でアプリケーションをテストします。システムの多くのテストカバレッジを非常に迅速に取得できるようにします。
他のヒント
あなたのケースに関して、私はあなたを助けるかもしれない2つの簡単なことを考えることができます:
- 例外が発生したときにDjangoがメッセージを送信できるようにして、それらの詳細を提供できます。詳細については、こちらをご覧ください。
- prodサーバー(test.example.comなど)にテスト環境を設定して、アプリをデプロイする前に問題がスムーズに進行するかどうかを確認できるようにした方がよいでしょう。
これらは最近聞いたポッドキャストだと思います(Pycon 2009より):
実世界でDjangoを見つける(PyCon 2009):
http://advocacy.python.org/podcasts/pycon.rss
パート1から3
デプロイ、特に再利用と再デプロイのためのアプリの設計に関する非常に優れた入門書。
登録。