2017-02-23 103 views
0

我目前正在一個項目上工作,我弄亂了我的代碼。我回去並刪除了git分支。我現在回過頭來,並添加所有的代碼。Ruby on Rails 5.0表刪除

我需要創建數據庫遷移,但我需要創建的遷移說它已經存在。我不明白這怎麼可能。

我的問題是我將如何獲得軌道只是覆蓋表?

回答

0

雖然你刪除了你的git分支和本地代碼,但如果你沒有刪除你的數據庫,它仍然是一樣的,所以你的表仍然存在。

您可以創建一個遷移來刪除一個表。 來自this的答案。

rails generate migration DropProductsTable 

class DropProductsTable < ActiveRecord::Migration 
    def up 
    drop_table :products 
    end 

    def down 
    raise ActiveRecord::IrreversibleMigration 
    end 
end 

我不知道你用的是什麼數據庫,但如果表是一樣的,你要添加你甚至可以不需要砸什麼。

+0

我明白了。我目前正在通過訓練營課程進行工作,並且我搞砸了分支,所以我刪除了它。我正在使用的數據庫是SQLite3。因此,如果表格的數據與第一個數據相同,我可以放棄它? –

+0

這是我的輸出 redhoodjt:〜/ workspace/saasapp(contact_form)$ rails db:migrate == 20170223181245 CreateContacts:migrating ==================== =============== - create_table(:contacts) rails中止! StandardError:發生錯誤,此次及以後所有遷移取消: –

+0

是的。即使您刪除了分支,您的數據庫仍未被觸動,因此表格仍然存在。您也可以使用'rake db:rollback'來取消上次進行的遷移,或者取決於您創建此表的時間,使用'rake db:rollback STEP = n'(n是要回滾的遷移數量)。然後,用您創建的新遷移「rake db:migrate」。 –