2017-06-12 124 views
1

heroku run rails db:migrate后,我得到这个错误的堆栈跟踪其中包括:Heroku的运行轨道分贝:迁移

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "categories" does not exist: CREATE TABLE "products" ("id" serial primary key, "title" character varying, "description" character varying, "category_id" integer, "picture" character varying, "video" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, CONSTRAINT "fk_rails_fb915499a4"

FOREIGN KEY ("category_id") REFERENCES "categories" ("id"))

然后我跑heroku run:detached rake db:migrate和它的工作。

但是,当我去到现场的网址,我得到这个错误:

ActiveRecord::StatementInvalid in WelcomeController#index

PG::UndefinedTable: ERROR: relation "products" does not exist LINE 1: SELECT "products".* FROM "products" ORDER BY "products"."cr...^: SELECT "products".* FROM "products" ORDER BY "products"."created_at" ASC LIMIT $1

编辑:

class WelcomeController < ApplicationController 
    def index 
    end 
end 

而且错误指向该行:

@all_products = Product.order(created_at: :asc).last(4) 

定义在application_controller.rb像这样:

def getProducts 
    @all_products = Product.order(created_at: :asc).last(4) 
end 

welcome/index.html.erb中使用了@all_products变量来显示最近4次上传的产品。

它被称为像这样:

<div class="text-center"> 
<% if @all_products.present? %> 
    <% @all_products.each do |p| %> 
    <a href="<%= p.picture() %>" data-toggle="lightbox" data-gallery="example-gallery" data-title="<%= p.title %>"> 
     <%= image_tag(p.picture.url, size: '200x200', class: 'rounded') %> 
    </a>&nbsp;&nbsp;  
    <% end %> 
<% end %> 
</div> 
+0

看到上面的更新 – JohnnyDevv

+0

上面的另一个更新 – JohnnyDevv

+0

你有在数据库中的记录? –

回答

0

一个rake db:migrate运行在一个一次性的过程,你的web程序将已经启动并缓存原来的DB模式,您需要重新启动您的应用程序迁移以下正在运行以重新缓存新的模式。

+0

然后我推到heroku对不对? – JohnnyDevv

+0

它的工作原理!最后 – JohnnyDevv

+0

你一定是个野兽 – JohnnyDevv

相关问题