簡體   English   中英

Capistrano deploy和schema.rb

[英]Capistrano deploy and schema.rb

我是Rails的新手,我正在嘗試部署我的第一個項目。 我正在使用rails 3,ruby 1.8.7,Passanger,Mysql和Git

我按照很多教程來學習使用capistrano進行部署,並且有一個我無法弄清楚的問題。 在教程中他們從不談論schema.rb如果這個文件負責我已經完成的遷移以及我們部署應用程序時,capistrano將所有文件復制到“當前”文件夾(schema.rb to),它怎么能在生產服務器上進行正確的遷移。 我應該告訴capistrano為“current”文件夾制作一個simlink到正確的schema.rb文件嗎? 如果是的話我該怎么做? TNKS。

schema.rb文件包含數據庫定義。 它不對任何遷移負責。

遷移包含在db/migrations文件夾中。 當您部署新版本並要求Capistrano遷移當前數據庫時,Capistrano將調用rake db:migrate 遷移任務不依賴於schema.rb 它連接到數據庫,從schema表中讀取已執行的遷移列表,並執行db/migrations中該表中不存在記錄的所有文件。

schema.rb文件僅在調用rake db:schema:load或引導Rails時使用。 在后一種情況下,Rails將使用模式來防止每次訪問模型時檢查數據庫結構。

也就是說, schema.rb文件必須在SCM中進行版本控制,並且必須在部署期間包含它。 你不需要做任何特別的事情。 除非您忽略它,否則Capistrano會像您所有其他文件一樣從您的SCM檢出文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM