當我讀Rails的書時,他們每次創建一個新的數據庫時,總是遵循db:migrate
。Ruby on Rails:db:migrate的用途
rails generate scaffold school
rake db:migrate
在控制檯視圖中,我在第一行看到,Rails創建了一些文件,沒有問題。但在第二行,我看到Rails並沒有真正改變任何東西。我查看了Rails幾乎創建的一些文件,並且沒有看到任何更改。
那麼,第2行的目的是什麼,請告訴我。
謝謝:)
當我讀Rails的書時,他們每次創建一個新的數據庫時,總是遵循db:migrate
。Ruby on Rails:db:migrate的用途
rails generate scaffold school
rake db:migrate
在控制檯視圖中,我在第一行看到,Rails創建了一些文件,沒有問題。但在第二行,我看到Rails並沒有真正改變任何東西。我查看了Rails幾乎創建的一些文件,並且沒有看到任何更改。
那麼,第2行的目的是什麼,請告訴我。
謝謝:)
耙將遷移到你的數據庫的變化。它實際上改變了數據庫模式以匹配您以前生成的腳手架模型。
沒有它,你不會有一個表來寫入你的對象。或者如果改變型號,表格可能與您的型號不同,導致錯誤。
當您生成模型(或腳手架)時,會在您的db/migration目錄中創建一個遷移文件。這是一個純文本文件,你可以手動創建,如果你想。這是關於數據庫的rails中迭代開發的工具。每次遷移都會爲系統添加一些更改。當您運行rake db:migrate
時,您的數據庫將根據給定的遷移進行更新。在分佈式開發的情況下,這是一個方便的工具,當一個程序員可以從存儲庫檢出代碼,並且可以在他自己的開發數據庫上運行這些遷移。
db:migrate
,是告訴軌道用新更改更新數據庫的命令。認爲它是這樣的
當你說rails generate scaffold
軌道將生成文件,如模型,控制器等。它創建一個文件在db/migrate有SQL腳本來更新數據庫。
例如:如果您運行rails generate scaffold User name:string
,那麼你將需要一個表稱爲與列「名」的數據庫用戶,即SQL腳本將根據數據庫生成/遷移文件夾
與db:migrate
,命令,你是告訴軌到新的SQL腳本遷移到數據庫,在上述情況下,如果你運行rake -T
,從您的Rails應用程序根目錄,將創建「用戶」表
,你可以看到所有的耙任務
HTH :)