![](/img/trans.png)
[英]App works fine on local host and on heroku, but user data is missing on heroku?
[英]Ruby on rails app works on local host but, not on heroku
我只是在 Rails 上學習 ruby。 我創建了兩個數據庫表:trainers 和 tokimons。 在本地主機(包括數據庫)上一切正常,但在 heroku 上出現問題。
這是日志:
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]:
這是 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
這是welcome_controller.rb的一部分
class WelcomeController < ApplicationController
# GET /welcome
def index
@trainer = Trainer.all
end
end
該行:
2016-10-13T21:51:16.859872+00:00 app[web.1]: ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "trainers" does not exist
應該暗示你有一個postgres 問題。特別是表未定義。
假設您安裝了 heroku-cli,您需要在控制台中運行heroku run rake db:migrate
這將執行 Heroku 所需的遷移。
以下是有關如何在 Heroku 上運行 Rails (4) 應用程序的文檔:
https://devcenter.heroku.com/articles/getting-started-with-rails4
特別是這里是關於遷移的部分:
https://devcenter.heroku.com/articles/getting-started-with-rails4#migrate-your-database
Heroku CLI 文檔和安裝說明:
PG::UndefinedTable
和PG::UndefinedColumn
錯誤是因為您尚未針對生產數據庫運行遷移。
你應該養成在每次部署后運行heroku run rake:db:migrate
的習慣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.