0

您好我有一個常見的遷移問題:Rails遷移後的數據庫重置

當我創建遷移這樣的:

class RenameColumn < ActiveRecord::Migration 
    def change 
    rename_column :users, :hotel_stars, :rating_stars 
    rename_column :users, :restaurant_stars, :price_stars 
    end 
end 

和更改代碼的型號 - ,視圖 - 控制器和相應文件(我不創建新的模型等):

ie。

Model: attr_accessible :rating_stars, :price_stars 

(而不是:hotel_stars,:restaurant_stars)

Controller: @rating = current_user.rating_stars 

當我現在運行遷移(耙分貝:遷移) - >它的工作原理! 但是在rake db:drop之後,rake db:create,rake db:遷移它不再了!

此遷移有什麼問題?如何創建正在使用WITH和無需重置數據庫的遷移?

謝謝!

+0

請給出確切的錯誤信息。我不知道問題來自「它現在不行了!」。謝謝。 – 2011-12-16 01:30:44

+0

什麼是您的rails版本? – 2011-12-16 01:33:03

回答

0

我認爲你的問題是rake db:create不能從schema.rb重建你的數據庫。爲此,您需要執行rake db:setup而不是rake db:create。在任何情況下,我會嘗試耙db:重置,而不是drop/create,因爲我相信這將完成你想要在一個步驟中完成。

鍵入rake -T獲取可用任務的列表以及它們的功能。

而且在這裏看到的更多信息,軌道遷移: http://guides.rubyonrails.org/migrations.html

0

你有沒有手動更改數據庫的狀態和/或修改遷移它運行後?如果是這樣,你搞砸了遷移的狀態。

您可以通過添加一個遷移來緩解這種情況,該遷移將您的數據庫移植到您的新遷移期望的位置,或者您可以修復之前更改過的遷移。

根據你有多少其他開發者,我會在這種情況下去找後者。