我正在使用Rails 1.2.3版本。現在我想升級Rails版本以及從1.8.6到1.9.7的ruy版本。將Rails App從1.2.3升級到3.1.0?
與這種較舊的版本一起工作,但它處於運行狀態是一個主要的痛苦。現在我想要Rails的高級功能,但不支持這個舊版本。
請建議我升級版本和ruby版本的方式。
謝謝....
我正在使用Rails 1.2.3版本。現在我想升級Rails版本以及從1.8.6到1.9.7的ruy版本。將Rails App從1.2.3升級到3.1.0?
與這種較舊的版本一起工作,但它處於運行狀態是一個主要的痛苦。現在我想要Rails的高級功能,但不支持這個舊版本。
請建議我升級版本和ruby版本的方式。
謝謝....
這是一個很大的飛躍。您最好的選擇是創建一個新的rails 3.1應用程序,然後手動遷移您的代碼。
gem install rails #=> will install the latest stable release from rubygems
gem install bundler
rails new myapp
你需要做的第一件事就是打開Gemfile
,並添加您使用的是當前應用程序的任何寶石,它也將是找到任何插件的寶石版本是個好主意你正在使用(在vendor/plugins
)。另外,請確保您爲所使用的數據庫類型安裝了適當的Gem(mysql2
,sqlite3
或pg
)。
添加完所有需要的寶石後,運行bundle install
將所有寶石與應用程序捆綁在一起。
至於視圖,模型和控制器,這些東西應該都可以複製到新應用程序中。你可能需要調整一些東西,但大部分這些東西都應該工作。
您還需要打開config/application.rb
並配置您的應用程序。您可以使用舊的environment.rb
文件作爲參考。
在您啓動應用程序之前的最後一步是將您的routes.rb
文件更改爲新的Rails 3格式。這可能是遷移中最糟糕的部分,因爲您首先需要學習如何編寫Rails 3路由文件,然後手動寫入路由。更多信息可以在here找到。
我從來沒有使用Rails 1,所以有可能你可能需要改變一些其他的東西。 These three Railscasts一定會成爲您的有用資源。
謝謝老闆。你給出的步驟真的很好,或者我。你說的很好,路由會殺了我。 – Rubyist
我已經將主要應用程序從2.3.10遷移到3.0.9 這是一個非常痛苦的過程,如果我想要遷移到3.1,情況會更糟。
根據你的應用程序的大小,我肯定會推薦創建一個新的應用程序並複製這些東西。
從這個老版本的導軌遷移到最新版本絕對不是一次飛躍,有很多不同的事情需要考慮。
但是,關於我的回答是最好的事情是,我建議你這樣做,測試的過程中,找到兼容的寶石等等......如此在軌道3和Ruby 1.9.2
是的男人,你是對的。將新的應用程序作爲現有項目的克隆比較好。我們可以使用邏輯以及少數代碼可以重複使用。否則,整個垃圾代碼會在執行時造成麻煩。 – Rubyist
好得多哇,正如磚匠所說,這是一個飛躍!我在幾年前使用Rails 1 ..我沒有升級到Rails 2,我重新編寫了。
Rails 1.2.3應用程序有多大?
許多事情發生了變化,Rails中的功能,很多Gems,路由,資產管道,命名範圍,ActiveRecord查詢API ......甚至Ruby也發生了變化 - 只是升級是個壞主意。有許多新的概念和特徵,您不得不考慮,並且從乾淨的石板開始會更好。
這可能是一個變相的祝福。我認爲這是一個很好的機會,可以通過在Rails 3.1中重寫和重新設計來改進代碼庫:-)
我建議從頭開始在Rails 3.1應用程序中使用最重要的功能,同時保持1.2.3應用程序處於維護模式。
它可能也是一個很好的機會,以擺脫其很少使用的應用的一些「特色」,...
我不認爲有一個合理的一步法這一點。我建議使用指南升級到Rails 2,確保所有的測試都通過了(爲了以防萬一......也許在生產中給它幾天/周),然後按照從Rails 2到Rails 3的升級指南。 –
@約旦:謝天謝地。但我沒有足夠的時間來跟蹤這一步。如果你有任何想法升級,請讓我知道。我會嘗試這種方法。 – Rubyist
@Jordan:您是否有任何參考文檔可以將Rails 1升級到Rails 2版本。 ?如果你有,那麼請分享...謝謝 – Rubyist