[ruby-on-rails] Heroku "죄송하지만 뭔가 잘못되었습니다"


Answers

heroku에서 내 데이터베이스가 잘못 참조되었다고 밝혀졌습니다. 이것이 내가 한 일이다.

  1. rake db : drop - 테스트 및 개발 테이블을 모두 삭제했습니다.
  2. posgresql에서 두 데이터베이스를 다시 만들었습니다. 저는 로컬 데이터베이스도 가지고 있습니다.
  3. rake db : migrate - 이 시점에서 localhost는 1 후에 다시 작동합니다.
  4. heroku addons - 공유 데이터베이스가 표시되어야합니다.
  5. heroku pg : reset SHARED_DATABASE - 권한 문제로 인해 heroku에서 db : reset 할 수 없습니다.
  6. heroku rake db : migrate - 프로덕션 db를 다시 마이 그 레이션합니다.

저의 주요 문제를 직접적으로 다루는 것은 5,6 단계뿐이었습니다.

고마워요 !!!

Question

첫째, 나는 레일 / 헤로큐의 초보자이기 때문에 사전에 새내기를 용서하십시오!

나는 Rails 튜토리얼 (http://guides.rubyonrails.org/getting_started.html)을 작성하여 블로그와 같은 "포스트"앱을 생성하고이를 github에 푸시 한 다음 heroku로 푸시했다.

내 응용 프로그램은 로컬에서 제대로 작동하지만 온라인으로 실행하려고하면 "죄송합니다.하지만 문제가 발생했습니다"라는 빨간색 글꼴 오류가 발생합니다.

다음은 영웅 기록입니다.

2012-06-17T18:20:21+00:00 app[web.1]: Started GET "/posts/new" for 24.246.75.91 at 2012-06-17 18:20:21 +0000
2012-06-17T18:20:21+00:00 app[web.1]: Processing by PostsController#new as HTML
2012-06-17T18:20:21+00:00 app[web.1]:   Rendered posts/_form.html.erb (19.4ms)
2012-06-17T18:20:21+00:00 app[web.1]:   Rendered posts/new.html.erb within layouts/application (32.8ms)
2012-06-17T18:20:21+00:00 app[web.1]: Completed 500 Internal Server Error in 39ms
2012-06-17T18:20:21+00:00 app[web.1]: 
2012-06-17T18:20:21+00:00 app[web.1]:     13: 
2012-06-17T18:20:21+00:00 app[web.1]: ActionView::Template::Error (undefined method `name' for #<Post:0x000000043b8e00>):
2012-06-17T18:20:21+00:00 app[web.1]:     14:   <div class="field">
2012-06-17T18:20:21+00:00 app[web.1]:     15:     <%= f.label :name %><br />
2012-06-17T18:20:21+00:00 app[web.1]:     18:   <div class="field">
2012-06-17T18:20:21+00:00 app[web.1]:     17:   </div>
2012-06-17T18:20:21+00:00 app[web.1]:     16:     <%= f.text_field :name %>
2012-06-17T18:20:21+00:00 app[web.1]:     19:     <%= f.label :title %><br />
2012-06-17T18:20:21+00:00 app[web.1]:   app/views/posts/_form.html.erb:16:in `block in _app_views_posts__form_html_erb___4393344465537738631_33651200'
2012-06-17T18:20:21+00:00 app[web.1]:   app/views/posts/_form.html.erb:1:in `_app_views_posts__form_html_erb___4393344465537738631_33651200'
2012-06-17T18:20:21+00:00 app[web.1]:   app/views/posts/new.html.erb:3:in `_app_views_posts_new_html_erb___263954971377171473_37473500'
2012-06-17T18:20:21+00:00 app[web.1]:   app/controllers/posts_controller.rb:35:in `new'
2012-06-17T18:20:21+00:00 app[web.1]: 

간단히 말해 f.name은 데이터베이스의 항목을 나타내는 객체입니다 (f에 대한 대부분의 정보도 마찬가지입니다).

"undefined method`name '"오류가 이상하게 보입니다. 완벽하게 지역적으로 작동하기 때문입니다.

내 가설은 데이터베이스가 영웅과 내 앱간에 제대로 연결되어 있지 않다는 것입니다. 그러나, 어떻게 해결할 수 있을지 모르겠 /이 문제를 확인하십시오.

내 응용 프로그램은 기본적으로 '공유 데이터베이스'를 사용하고 있습니다.

무슨 수표에 대한 힌트? 내가 놓친 것?

편집 1 : 데이터베이스 마이그레이션. 테이블 'posts'는 이미 '감지 됨'인 것 같습니다. 다음은 흔적입니다.

   Running rake db:migrate --trace attached to terminal... up, run.1
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:migrate
Migrating to CreatePosts (20120418005214)
==  CreatePosts: migrating ====================================================
-- create_table(:posts)
rake aborted!
An error has occurred, this and all later migrations canceled:

PG::Error: ERROR:  relation "posts" already exists
: CREATE TABLE "posts" ("id" serial primary key, "name" character varying(255), "title" character varying(255), "content" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:640:in `async_exec'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:640:in `block in execute'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:639:in `execute'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:170:in `create_table'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:450:in `block in method_missing'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:424:in `block in say_with_time'
/app/vendor/ruby-1.9.3-p0/lib/ruby/1.9.1/benchmark.rb:280:in `measure'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:424:in `say_with_time'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:444:in `method_missing'
/app/db/migrate/20120418005214_create_posts.rb:3:in `change'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:393:in `block (2 levels) in migrate'
/app/vendor/ruby-1.9.3-p0/lib/ruby/1.9.1/benchmark.rb:280:in `measure'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:393:in `block in migrate'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:118:in `with_connection'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:377:in `migrate'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:512:in `migrate'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:704:in `block (2 levels) in migrate'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:759:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:759:in `block in ddl_transaction'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:190:in `transaction'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/transactions.rb:208:in `transaction'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:759:in `ddl_transaction'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:703:in `block in migrate'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:684:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:684:in `migrate'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:554:in `up'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/migration.rb:535:in `migrate'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/railties/databases.rake:153:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/app/vendor/ruby-1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `load'
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `<main>'
Tasks: TOP => db:migrate

편집 2 : 시도 데이터베이스를 삭제합니다. 이상한 오류 :

19:06:34[~/ED3/ed3/]>heroku run rake db:drop
Running rake db:drop attached to terminal... up, run.1
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
Couldn't drop mtstktqkyx : #<ActiveRecord::StatementInvalid: PG::Error: ERROR:  must be owner of database mtstktqkyx
: DROP DATABASE IF EXISTS "mtstktqkyx">

편집 3 : CreatePosts 마이 그 레이션 (db / migrate /##..##_ create_posts.rb에서)

class CreatePosts < ActiveRecord::Migration
  def change
    create_table :posts do |t|
      t.string :name
      t.string :title
      t.text :content

      t.timestamps
    end
  end
end