sql >> データベース >  >> NoSQL >> MongoDB

エラー500が発生するのはなぜですか。申し訳ありませんが、アプリをHerokuにプッシュすると問題が発生しました。

    エラー

    500 server error 基本的に、サーバーに内部的な問題がある(そしてリクエストをレンダリングできない)すべての時間のカバーです

    Railsのエラー処理は、すべてのエラーを/public内の一連のファイルにルーティングします 422.htmlというディレクトリ 、404.html および500.html -最も一般的なエラーを表す

    500エラーが表示される理由は、アプリ内の何かである可能性があります。これを修正するために私がすることは次のとおりです:

    環境

    本番環境でエラーが発生します。つまり、環境との違いが問題の原因になります

    まず、何が変わっているのかを見ていきます。通常、問題の原因となっているのはDB、または一部の環境設定(異なるDBプロバイダーなど)です

    DB

    最も一般的な500エラーは、開発環境と本番環境の間のDBの不整合が原因で発生します。 mongoidについてはわかりませんが、MYSQL / PGSQLのようなものでは、問題は本番環境で移行しないことに関係します:

    heroku run rake db:migrate 通常、本番環境でのほとんどのデータベースの問題を修正します

    例外通知

    例外通知 と呼ばれる非常に優れた宝石があります (Railsコアから抽出)、電子メールでエラー通知を送信するミドルウェアの一部:

      #config/environments/production.rb
      config.middleware.use ExceptionNotification::Rack,
      :email => {
        :email_prefix => "Subject",
        :sender_address => %{"notifier" <[email protected]>},
        :exception_recipients => %w{[email protected]}
      }
    

    SendGridアドオン を入手する必要があります Herokuでこれをproduction.rbに追加します :

      #config/environments/production.rb
      config.action_mailer.smtp_settings = {
        :address        => 'smtp.sendgrid.net',
        :port           => '587',
        :authentication => :plain,
        :user_name      => ENV['SENDGRID_USERNAME'],
        :password       => ENV['SENDGRID_PASSWORD'],
        :domain         => 'heroku.com',
        :enable_starttls_auto => true
      }
    



    1. MongoDb:外部ドキュメントをフィルタリングする集計$ lookup

    2. MongoDBは、二重ネストされた配列内で最大日付を取得します

    3. C#10genおよびmongo:インターフェースとしてのメンバーの逆シリアル化

    4. MongoDBクライアントについて知っておくべきことすべて