[英]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.