2015-11-07 138 views
1

這是遷移文件遷移列 - Rails的

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列。

回答

1

我想,而不是創建新的遷移你修改了一個現有的。

你需要做的是rollback遷移Heroku而不是migrate它再次。

請記住,您將不得不爲您的回購創建兩個提交,其中一個需要進行修改並與之配合。這是因爲在回滾遷移時添加的列應該丟失,或者嘗試刪除不存在的列。

所以該過程如下:

  1. 從遷移取出修改。提交更改。
  2. heroku run rake db:rollback STEP=1或者您需要的很多步驟。
  3. 再次添加修改。提交更改。
  4. heroku run rake db:migrate
0

請嘗試以下 - 我假設是你最後一次遷移 -

heroku run rake db:rollback,回退最後遷移

heroku run rake db:migrate運行,移民再次