MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Dlaczego otrzymuję błąd 500 Przepraszamy, ale coś poszło nie tak podczas wypychania mojej aplikacji do Heroku?

Błąd

500 server error jest w zasadzie przykrywką na wszystkie sytuacje, w których Twój serwer ma problem wewnętrzny (i nie może renderować Twojego żądania)

Obsługa błędów Railsów kieruje wszystkie twoje błędy do serii plików wewnątrz twojego /public katalog o nazwie 422.html , 404.html i 500.html -- reprezentujące najczęstsze błędy

Przyczyną wyświetlania błędu 500 może być dowolny element Twojej aplikacji. Oto, co zrobię, aby to naprawić:

Środowisko

Otrzymujesz błąd w środowisku produkcyjnym, co oznacza, że ​​przyczyną problemu będzie różnica w środowiskach

Zacząłbym od spojrzenia na to, co się zmienia. Zazwyczaj przyczyną problemu jest baza danych lub niektóre ustawienia środowiska (inny dostawca bazy danych itp.)

DB

Najczęstsze błędy 500 są spowodowane przez niespójności DB między środowiskami programistycznymi i produkcyjnymi. Nie wiem o mongoid, ale w przypadku MYSQL / PGSQL problem będzie związany z brakiem migracji w środowisku produkcyjnym:

heroku run rake db:migrate zwykle naprawia większość problemów z bazą danych w produkcji

Powiadomienie o wyjątku

Istnieje bardzo dobry klejnot o nazwie powiadomienie o wyjątku (wyodrębniony z rdzenia Rails), część oprogramowania pośredniczącego, które wysyła powiadomienia o błędach przez e-mail:

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

Musisz pobrać dodatek SendGrid w Heroku i dodaj to do swojego 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $sort

  2. pymongo - jak dopasować przy wyszukiwaniu?

  3. mongodb jak zmienić domyślny port

  4. Jak zsumować wartość klucza we wszystkich dokumentach w kolekcji MongoDB?

  5. Pole $name musi być obiektem akumulacyjnym