因此,在開發過程中的某一點,我添加了一個遷移功能,將列添加到我的用戶表中。此欄添加了「美元」屬性。之後,我決定通過編寫刪除遷移來刪除「美元」屬性。後來我意外地刪除了初始遷移來添加美元,所以爲了解決運行db時出現的錯誤:遷移到本地SQLite數據庫,我也刪除了RemoveDollarsFromUsers
遷移。Ruby on Rails刪除仍在Heroku上運行的遷移
貌似在我部署到heroku之前解決了這個問題。在用heroku pg:reset DATABASE
重置數據庫後,我跑heroku run rake db:migrate
,並得到一個錯誤,說「美元」不是用戶的屬性。日誌文件顯示它曾嘗試運行我以前刪除的RemoveDollarsFromUsers遷移。
所以我再次檢查我的回購是最新的,然後我試圖完全重置並啓動一個新的應用程序在heroku,也許heroku是記住舊的遷移。有了新的heroku應用程序,我得到了同樣的錯誤,儘管我推送的回購應該沒有任何參考文件。
這是一個混帳問題?我唯一能想到的就是git使用RemoveDollarsFromUsers遷移來推送舊版本,否則heroku甚至不知道它呢?
如果你做了'git status',你會得到什麼?你確定刪除了你提交刪除的文件後嗎? – fmendez
對不起,這是我第一次使用這個網站,我不知道如何做那些嵌入式代碼窗口的人。當我運行git status的時候,它基本上給了我一個沒有被提交的東西的清單,包括刪除我正在談論的文件。很明顯,你正在做的事情。但是,即使在添加git之後。和git commit,它仍然說這些文件還沒有被提交 –
您需要先將代碼推送到heroku。推後,嘗試重置數據庫,然後運行遷移。 – jvnill