这个问题让我难堪。Heroku Rails - ActiveRecord :: UnknownAttributeError(未知属性'user_id'的时间表。):
当部署到Heroku上我得到了错误,但没有在本地这将指示与DB
线的参照
class StaticPagesController < ApplicationController
def home
if logged_in?
@project = current_user.projects.build if logged_in?
**@timetable = current_user.timetables.build if logged_in?**
@feed_items = current_user.feed.paginate(page: params[:page]).reorder("project_due_date ASC")
@feed_items3 = current_user.feed3.paginate(page: params[:page], :per_page => 1)
end
end
我已经试过
Heroku run db:migrate and Heroku restart
还是个问题相同的错误
这可能是事实,我有模式错了某些BU什么时候会影响Heroku而不是本地主机?
URL = https://radiant-sea-5676.herokuapp.com/
编辑 - 这似乎在登录状态下,当没有登录在Heroku,但崩溃上班工作在本地主机上任何一种方式。
再次编辑 - 通过Heroku检查模式显示,即使在迁移后,用户iD也没有用户iD列和索引设置。
create_table "timetables", force: :cascade do |t|
t.string "name", limit: 255
t.string "attachment", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Localhost正常工作。其实enver有一个问题,但当我检查使用Heroku的Heroku上的Schema运行“bundle exec rake db:schema:dump && cat db/schema.rb”其缺少的add_index“时间表”,[“user_id”],名称:“ index_timetables_on_user_id“,使用::btree ...它的项目。项目来自哪里?它看起来它的自动生成为没有user_id参数的项目,但有东西添加它 – ChrisM
架构的Pastebin http://pastebin.com/1DJF69Zr。请注意,在时间表和关于外键的最后一行之后索引行是如何丢失的。 – ChrisM
从Heroku中删除ClearDB应用程序,建立一个新的。将“heroku config:set DATABASE_URL =”更改为新的ClearDB。在这之后,Heroku运行rake:迁移正确处理并插入正确的外键。本地Command rake db:reset似乎是解决方案,但在使用ClearDB时,该命令在Heroky上不起作用。 – ChrisM