2011-11-18 2 views
0

저는 처음으로 영웅이 된 최초의 포스트그레스 초보자이며 영웅에게 배포하는 데 어려움이 있습니다.Heroku 삼나무 레일 3.1 db : 마이그레이션 실패

내 응용 프로그램이 내 컴퓨터에서 제대로 작동하지만 myapp.heroku.com에 액세스하려고하면 상태가 500이됩니다.

내 단계까지 :

$ lunchy start postgres 
$ createdb -Ouser -Eutf8 myapp_development 
$ createdb -Ouser -Eutf8 myapp_test 
$ rails new myapp --development=postgresql 
$ cd myapp 
$ git init 
$ git add . 
$ git commit -m "init" 
$ git push -u origin master 
$ heroku create --stack cedar 
$ git push heroku master 

>>>>Some simple app scaffolding<<<<< 

$ git add . 
$ git commit -m "simple scaffolding" 
$ git push 
$ git push heroku 
$ heroku run rake db:migrate 

명령을 실행하는 것 같다하지만 어떤 테이블이 작성되고 표시되지 않습니다.

Procfile 내용 :

web: bundle exec thin start -p $PORT -e $RACK_ENV 

에게 Heroku 로그 쇼 :

2011-11-18T08:01:28+00:00 app[run.6]: Awaiting client 
2011-11-18T08:01:28+00:00 app[run.6]: Starting process with command `bundle exec rake db:migrate` 
2011-11-18T08:01:29+00:00 heroku[run.6]: State changed from starting to up 
2011-11-18T08:01:33+00:00 heroku[run.6]: Process exited 
2011-11-18T08:01:35+00:00 heroku[run.6]: State changed from up to complete 
2011-11-18T08:03:21+00:00 heroku[router]: GET myapp.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=9ms status=500 bytes=728 
2011-11-18T08:03:23+00:00 heroku[router]: GET myapp.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=17ms status=304 bytes=0 
2011-11-18T08:04:18+00:00 app[web.1]: 
2011-11-18T08:04:18+00:00 app[web.1]: 
2011-11-18T08:04:18+00:00 app[web.1]: Started GET "/" for 101.171.144.139 at 2011-11-18 08:04:18 +0000 
2011-11-18T08:04:18+00:00 app[web.1]: Processing by PagesController#home as HTML 
2011-11-18T08:04:18+00:00 app[web.1]: Rendered pages/home.html.erb within layouts/application (0.2ms) 
2011-11-18T08:04:18+00:00 app[web.1]: Rendered layouts/_head.html.erb (0.9ms) 
2011-11-18T08:04:18+00:00 app[web.1]: Completed 500 Internal Server Error in 2ms 
2011-11-18T08:04:18+00:00 app[web.1]: 
2011-11-18T08:04:18+00:00 app[web.1]: ActionView::Template::Error (custom.css isn't precompiled): 
2011-11-18T08:04:18+00:00 app[web.1]:  7: <meta name="viewport" content="width=device-width" /> 
2011-11-18T08:04:18+00:00 app[web.1]:  8: <title><%= title %></title> 
2011-11-18T08:04:18+00:00 app[web.1]:  9: <%= stylesheet_link_tag "application" %> 
2011-11-18T08:04:18+00:00 app[web.1]:  10: <%= stylesheet_link_tag 'custom', :media => 'screen' %> 
2011-11-18T08:04:18+00:00 app[web.1]:  11: <%= javascript_include_tag "application" %> 
2011-11-18T08:04:18+00:00 app[web.1]:  12: <%= csrf_meta_tags %> 
2011-11-18T08:04:18+00:00 app[web.1]:  13: </head> 
2011-11-18T08:04:18+00:00 app[web.1]: app/views/layouts/_head.html.erb:10:in `_app_views_layouts__head_html_erb___3427718828002391478_29348560' 
2011-11-18T08:04:18+00:00 app[web.1]: app/views/layouts/application.html.erb:4:in `_app_views_layouts_application_html_erb___1135382871397557001_29029960' 
2011-11-18T08:04:18+00:00 app[web.1]: 
2011-11-18T08:04:18+00:00 heroku[router]: GET myapp.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=13ms status=500 bytes=728 
2011-11-18T08:04:18+00:00 app[web.1]: 
2011-11-18T08:04:18+00:00 app[web.1]: cache: [GET /] miss 
2011-11-18T08:04:19+00:00 app[web.1]: cache: [GET /favicon.ico] stale, invalid, store 

나는 custom.css 때문에 미리 컴파일되지 않고있어 나는

$ RAILS_ENV=production bundle exec rake assets:precompile 

이 미리 컴파일했다 공공/자산으로 그런 다음 다시 실행하십시오.

$ git add. 
$ git push 
$ git heroku push 
$ heroku rake db:migrate 
$ heroku open 

다시 로그하고 동일한 오류가 로그에 나타납니다.

내가 뭘 잘못하고 있니?

Gemfile :

gem 'rails', '3.1.1' 

gem 'pg' 
gem 'thin' 
gem 'foreman' 
gem 'heroku' 

group :development do 
    gem 'rspec-rails' 
end 

group :test do 
    gem 'rspec-rails' 
    gem 'webrat' 
end 

group :assets do 
    gem 'sass-rails', '~> 3.1.4' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
    gem 'zurb-foundation' 
end 

gem 'jquery-rails' 

database.yml을 :

development: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_development 
    pool: 5 
    username: user 
    password: password 

test: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_test 
    pool: 5 
    username: user 
    password: password 

production: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_production 
    pool: 5 
    username: user 
    password: password 

Production.rb :

MyApp::Application.configure do 
    config.cache_classes = true 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
    config.serve_static_assets = false 
    config.assets.compress = true 
    config.assets.compile = false 
    config.assets.digest = true 
end 
+0

문제였다 : '<% = stylesheet_link_tag'사용자 정의 ': 미디어 =>'화면 '%>' 내가했던 분명히하는 것이 새로운이 –

답변

0

당신은 자식에 미리 컴파일 된 자산을 밀어해야합니다.

bundle exec rake assets:precompile을 실행 한 후 git add .을 실행하고 마지막으로 git push heroku master을 실행합니다. 당신은 당신의 production.rb에 다음을 설정할 수 있습니다

"런타임 동안 자산을 ​​컴파일" http://devcenter.heroku.com/articles/rails31_heroku_cedar

에서 :

+0

레일하는 것을 나는하지 않았다 싫어, 사과 - 질문을 업데이트했습니다. –

0

당신은 실제로 삼나무에 미리 컴파일 된 자산없이 의해 얻을 수있는, 다음을 참조 :

슬러그를 컴파일하는 동안 컴파일하기 위해.

+0

heroku가 런타임에 컴파일 중이지만 "custom.css가 미리 컴파일되지 않았습니다"라는 오류가 발생하여 수동으로 시도한 이유입니다. config.assets.compile = false가 추가 된 production.rb 파일을 추가했습니다. –

+0

'public/assets/manifest.yml'을 삭제 했습니까? 나는 단지'public/assets /'폴더에서 모든 파일을 지우거나 간단히 백업 파일로 옮길 것이다. 그런 다음,'git commit -m '제거 된 매니페스트를 실행하십시오.yml "&& git push heroku master'를 변경하여 heroku에게 변경 사항을 푸시한다. 스택 추적을 일시적으로 원하면'config.consider_all_requests_local'을 true로 변경할 수 있으며, config.serve_static_assets도 true로 변경할 수있다. 그게 도움이된다면 (heroku의 얇은 서버에 달렸지 만,이 설정 없이는 이미 이것을 제공한다고 생각합니다.) – ylluminate

+0

'public/assets/manifest.yml'이 삭제되었습니다. 제안 사항을 production.rb에서 시도했지만 여전히 주사위를 사용하지 않았습니다. –