这是迁移文件
class CreateComments < ActiveRecord::Migration
def change
create_table :comments do |t|
t.string :name
t.string :email
t.text :body
t.boolean :spam, default: false
t.references :post, index: true, foreign_key: true
t.references :user, index: true, foreign_key: true
t.timestamps null: false
end
end
end
由于某种原因,未在heroku上创建user_id列。
heroku上的实际表格
Comment(id: integer, name: string, email: string, body: text, post_id: integer, created_at: datetime, updated_at: datetime)
我已经尝试过heroku restart
也许它会更新架构或什么都没有。
在我的本地环境中,我可以看到并可以使用user_id列。
答案 0 :(得分:1)
我认为您没有创建新的迁移,而是修改了现有的迁移。
您需要做的是rollback
Heroku 上的迁移,而不是migrate
上的迁移。
请记住,您必须为您的仓库创建两个提交,一个提供有关修改的提交。这是因为在回滚迁移时,添加的列应该丢失,或者它将尝试删除不存在的列。
所以程序如下:
heroku run rake db:rollback STEP=1
或您需要多少步骤。heroku run rake db:migrate
答案 1 :(得分:0)
请尝试以下操作 - 我想这是您上一次迁移 -
heroku run rake db:rollback
回滚上次迁移
heroku run rake db:migrate
再次运行该迁移