2016-10-13 5 views
-1

Ich lerne Ruby nur auf Schienen. Ich habe zwei Datenbanktabellen erstellt: Trainer und Tokimons. Alles funktioniert gut auf dem lokalen Host (einschließlich der Datenbank), aber etwas ging auf Heroku schief. HierRuby on Rails App funktioniert auf lokalen Host, aber nicht auf heroku

ist der log:

2016-10-13T21:51:16.840425+00:00 heroku[router]: at=info method=GET path="/" host=a2-tokimon.herokuapp.com request_id=2f86b075-8d64-4616-984a-304df86d9768 fwd="142.58.35.51" dyno=web.1 connect=2ms service=11ms status=500 bytes=1669 

2016-10-13T21:51:16.851541+00:00 app[web.1]: Started GET "/" for 142.58.35.51 at 2016-10-13 21:51:16 +0000 

2016-10-13T21:51:16.854395+00:00 app[web.1]: Processing by WelcomeController#index as HTML 

2016-10-13T21:51:16.858208+00:00 app[web.1]: Rendered welcome/index.erb within layouts/application (3.1ms) 

2016-10-13T21:51:16.858340+00:00 app[web.1]: Completed 500 Internal Server Error in 4ms (ActiveRecord: 2.3ms) 

2016-10-13T21:51:16.859867+00:00 app[web.1]: 

2016-10-13T21:51:16.859872+00:00 app[web.1]: ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "trainers" does not exist 

2016-10-13T21:51:16.859873+00:00 app[web.1]: LINE 1: SELECT "trainers".* FROM "trainers" 

2016-10-13T21:51:16.859874+00:00 app[web.1]:        ^

2016-10-13T21:51:16.859874+00:00 app[web.1]: : SELECT "trainers".* FROM "trainers"): 

2016-10-13T21:51:16.859875+00:00 app[web.1]:  51: 

2016-10-13T21:51:16.859876+00:00 app[web.1]:  52: 

2016-10-13T21:51:16.859877+00:00 app[web.1]:  53:   <tbody> 

2016-10-13T21:51:16.859877+00:00 app[web.1]:  54:    <% @trainer.each do |trainer| %> 

2016-10-13T21:51:16.859878+00:00 app[web.1]:  55:    <tr class="<%= cycle('oddline', 'evenline') %>"> 

2016-10-13T21:51:16.859879+00:00 app[web.1]:  56:     <td><%= trainer.pname %></td> 

2016-10-13T21:51:16.859880+00:00 app[web.1]:  57:     <td><%= trainer.level %></td> 

2016-10-13T21:51:16.859881+00:00 app[web.1]: app/views/welcome/index.erb:54:in `_app_views_welcome_index_erb__3990380873615253162_69847032979680' 

2016-10-13T21:51:16.859882+00:00 app[web.1]: 

2016-10-13T21:51:16.859882+00:00 app[web.1]: 

Hier ist ein Teil der trainers_controller.rb

class TrainersController < ApplicationController 
    before_action :set_trainer, only: [:show, :edit, :update, :destroy] 

    # GET /trainers 
    # GET /trainers.json 
    def index 
    @trainer = Trainer.all 
    end 

Hier wird ein Teil des welcome_controller.rb

class WelcomeController < ApplicationController 

    # GET /welcome 
    def index 
    @trainer = Trainer.all 
    end 



end 
+1

Sie müssen die Datenbank für Heroku rechen, um die Tabellen zu erstellen. Wenn Sie die Heroku CLI laufen lassen 'heroku run rake db: migrieren' – teddybear

+1

Hallo und Willkommen zu Stack Overflow. Wenn ich raten müsste, würde ich sagen, dass Sie vergessen haben, die Migration (oder das Schema) einzuchecken - denn im Grunde fehlt Ihrer Datenbank die Trainer-Tabelle. –

+0

Danke Jungs. Ich werde es versuchen. Übrigens habe ich verwendet: Schienen generieren Gerüst Trainer pname: String ****** Tisch zu erstellen. Aber wenn man Trainer, Trainer und Trainer benutzt, verwirrt mich das. Kannst du mir helfen? –

Antwort

0

die Zeile:

2016-10-13T21:51:16.859872+00:00 app[web.1]: ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "trainers" does not exist sollte ein Hinweis darauf sein, dass Sie ein Postgres-Problem haben. Insbesondere, dass die Tabellen nicht definiert sind. Wenn Sie heroku-cli installiert haben, müssen Sie in der Konsole heroku run rake db:migrate ausführen, damit die für Heroku erforderlichen Migrationen durchgeführt werden.

Hier ist die Dokumentation, wie eine Rails (4) App auf Heroku Laufen zu bekommen:

https://devcenter.heroku.com/articles/getting-started-with-rails4

und ist speziell hier der Teil über Migrationen:

https://devcenter.heroku.com/articles/getting-started-with-rails4#migrate-your-database

Heroku CLI - Dokumentation und Installationsanweisungen:

https://devcenter.heroku.com/articles/heroku-command-line

0

PG::UndefinedTable und PG::UndefinedColumn Fehler auftreten, weil Sie die Migrationen für die Produktionsdatenbank nicht ausgeführt haben.

Sie sollten es sich zur Gewohnheit machen, nach jeder Bereitstellung heroku run rake:db:migrate auszuführen.

Verwandte Themen