2012-06-17 6 views
21

En primer lugar, soy bastante novato en rails/heroku, ¡así que perdona la felicidad con antelación!Heroku "Lo sentimos, pero algo salió mal"

Hice el tutorial Rails (http://guides.rubyonrails.org/getting_started.html) y generé una aplicación de "blog" similar a la de "post", la inserté en github y luego la inserté en heroku.

Mi aplicación funciona bien a nivel local, pero cuando intento ejecutarla en línea, tiene el mensaje "Lo sentimos, pero algo salió mal" en la fuente roja.

Aquí es los registros de 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]: 

En pocas palabras, f.name es un objeto que representa una entrada en la base de datos (por lo que es la mayor parte de la información para f)

El "indefinido el error del método `name '" me parece extraño, ya que funciona perfectamente a nivel local.

Mi hipótesis es que la base de datos no está vinculada correctamente entre heroku y mi aplicación. Sin embargo, no sé cómo puedo solucionar/controlar este problema.

Mi aplicación está utilizando la "base de datos compartida" de forma predeterminada en este momento.

¿Alguna pista sobre qué cheque? Algo que me perdí?

EDITAR 1: base de datos de migración. La tabla 'publicaciones' parece estar ya 'detectada'. Aquí hay un rastreo:

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 

EDIT 2: Intenté eliminar la base de datos. extraño error:

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"> 

Datos 3: CreatePosts la migración (de db/migrar /##..##_ 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 
+1

Lo más probable es que no hayas migrado tu base de datos. No estoy seguro si heroku toolchain se encarga de eso. –

+1

si no te importa la producción de db puedes probar algo como 'heroku run rake db: drop' y luego ejecutar nuevamente tus migraciones en Heroku. –

+0

Definitivamente parece un problema en la migración CreatePosts. Publicar eso? – MBHNYC

Respuesta

16

Resulta que mi base de datos en heroku estaba siendo referenciada incorrectamente. Esto es lo que hice: db

  1. rastrillo: caída - esta matado a ambas tablas de prueba y desarrollo
  2. re-creado las dos bases de datos en PosgreSQL lo tengo local, así
  3. rastrillo db: migrate - por lo que en este punto localhost está trabajando nuevamente después de 1.
  4. complementos heroku - compartida de base de datos se debe mostrar
  5. heroku pg: restablecer SHARED_DATABASE - no puede hacer db: restablecer en heroku debido al permiso emite
  6. heroku carrera de rake db: migrate - remigrar la producción db

Aunque solo los pasos 5 y 6 fueron los únicos que abordaron mi problema principal directamente.

Gracias a todos !!!

+1

No tengo idea de lo que acabo de hacer, pero funcionó. ¡Gracias! – IIllIIll

46

Quizás quiso migrar su base de datos?

intente ejecutar:

heroku run rake db:migrate 

del directorio de su proyecto.

+0

Sí, pero obtengo algo como esto: PG :: Error: ERROR: la relación "publicaciones" ya existe (agregará trazas en la publicación original en breve) – mhz

0

Parece que tiene más de una migración para crear el modelo post. Vería las migraciones primero.

+0

hmmmm, solo hay un archivo en db/migrate/... if eso es lo que quieres decir. El archivo está en EDIT 3 – mhz

Cuestiones relacionadas