2014-03-03 1 views
0

내 앱이 로컬에서 제대로 실행되고 Heroku에서 실행될 때 충돌이 발생합니다. 응용 프로그램 new_post_path 호출을 실행할 때까지 잘 않습니다. new.html.erb 파일 또는 _form.html.erb 파일의 변경 사항이 문제인지 확인하기 위해 git push를 시도했지만, 마지막으로 heroku로 푸시하는 동안 데이터베이스가 손상되었을 수 있다고 생각합니다. 당시 나는 t.text 필드 (longtext)를 추가하고 있었고 이것이 문제인 것으로 보인다.heroku에서 레일 앱을 다시 시작하는 방법

그래서 나는 heroku에서 롤백하거나 완전히 다시 시작하고 싶었습니다. 그러나 어쨌든 나는 그것을하지 못했습니다. 이것은 아직 생산에 근접한 것이 아니기 때문에. 어쨌든 heroku에서 새 인스턴스를 만들고 그 인스턴스에 밀어 넣을 수 있습니까?

다시 로컬 버전이 완벽하게 실행됩니다. 어떤 아이디어라도 미리 감사드립니다.

답변

1

나는 레일 디렉토리에

에게 Heroku를 실행 $ heroku restart를 다시 시작이 문제

을 처리하는 방법에는 여러 가지가 있습니다 말할 것입니다. 때때로 나는 마술을 믿는다.

디버깅

사용 $ heroku log 오류의 원인을 디버깅 할 수 있습니다. Heroku가 레일하지 않았다 동안

마이그레이션 데이터베이스

아마도 당신은 현지 레일에서 데이터베이스 변경했습니다.

실행 heroku run rake db:migrate

드롭 데이터베이스와 다시 이주 데이터베이스

this thread를 참조하십시오. 때때로 이전 마이그레이션이 현재 마이그레이션과 충돌 할 수 있습니다. 데이터베이스의 데이터가 중요하지 않은 경우 클린 마이그레이션을 수행하십시오.

재 작성의 Heroku가 예를

실행 $ heroku apps:destroy –app appname하고 APPNAME와 appname를 교체합니다. git에서 현재 heroku 원격 저장소 위치를 삭제하십시오. git remote rm heroku. 그런 다음 heroku를 다시 만듭니다. 실행 $ heroku create. 평소와 같이 코드를 푸시하고 데이터베이스를 이전하십시오.

0

문제의 가장이 될 수 있습니다 다시 실행, 그래서 나는 몇 가지 제안 :

  1. 검토 Heroku가 롤백 기능을 포함하여 출시에이 Heroku article을.

  2. PG Backups 부가 기능을 앱에 추가하십시오.

  3. 또한 SendGrid 부가 기능과 함께 exception_notification 보석을 사용하여 오류에 대한 세부 정보가 포함 된 이메일을받을 수도 있습니다.

관련 문제