私はRails 1.2.3バージョンに取り組んでいます。今、Rails のバージョンと ruy のバージョンを 1.8.6 から 1.9.7 にアップグレードしたいと考えています。
そのような古いバージョンで動作するのは大きな苦痛ですが、実行中の状態です. Rails の高度な機能が必要ですが、この古いバージョンはサポートしていません。
バージョンとルビのバージョンアップ方法を教えてください。
ありがとう....
私はRails 1.2.3バージョンに取り組んでいます。今、Rails のバージョンと ruy のバージョンを 1.8.6 から 1.9.7 にアップグレードしたいと考えています。
そのような古いバージョンで動作するのは大きな苦痛ですが、実行中の状態です. Rails の高度な機能が必要ですが、この古いバージョンはサポートしていません。
バージョンとルビのバージョンアップ方法を教えてください。
ありがとう....
それはかなりの飛躍です。最善の策は、新しい Rails 3.1 アプリを作成してから、手動でコードを移行することです。
gem install rails #=> will install the latest stable release from rubygems
gem install bundler
rails new myapp
最初に行う必要があるのは、現在のアプリケーションで使用しているすべての gem を開いてGemfile
追加することです。また、使用しているすべてのプラグインの gem バージョンを見つけることもお勧めします ( でvendor/plugins
)。mysql2
また、使用しているデータベースのタイプ ( 、sqlite3
、または)に適した gem がインストールされていることを確認してくださいpg
。
必要なすべての gem を追加したら、実行bundle install
してすべての gem をアプリケーションにバンドルします。
ビュー、モデル、およびコントローラーに関する限り、それらはすべて新しいアプリケーションにコピーするだけで問題ありません。おそらく、いくつかの調整が必要になるでしょうが、ほとんどの場合、それらはすべて機能するはずです。
また、アプリケーションを開いてconfig/application.rb
構成する必要があります。古いenvironment.rb
ファイルを参照として使用できます。
アプリケーションを開始する前の最後のステップは、routes.rb
ファイルを新しい Rails 3 形式に変更することです。これはおそらく、移行の最悪の部分です。最初に Rails 3 ルーティング ファイルの書き方を学び、次に手動でルートを記述する必要があるからです。詳細については、こちらをご覧ください。
私は Rails 1 を使用したことがないので、他の変更が必要になる可能性があります。これら 3 つの Railscastは、間違いなく役立つリソースです。
私は主要なアプリケーションを 2.3.10 から 3.0.9 に移行しましたが、これは非常に骨の折れるプロセスであり、もし 3.1 に移行したいのであれば、さらに悪いことになるでしょう。
アプリケーションのサイズにもよりますが、新しいアプリケーションを作成してコピーすることをお勧めします。
この古いバージョンの Rails から最新の Rails への移行は、決して 1 回の飛躍ではなく、さまざまな考慮事項があります。
しかし、私の答えの最も良い点は、テストのプロセス、互換性のあるgemの検索など... Rails 3とRuby 1.9.2の方がはるかに優れていることです。
うわー、ブリッカーが言ったように、それはかなりの飛躍です! 私は Rails 1 を何年も前に使用していました.Rails 2 にアップグレードせず、書き直しました。
あなたのRails 1.2.3アプリケーションの大きさは?
非常に多くのことが変更されました。Rails の機能、非常に多くの Gem、ルーティング、アセット パイプライン、名前付きスコープ、ActiveRecord クエリ API、... Ruby でさえも変更されました。単にアップグレードするのは得策ではありません。考えなければならない多くの新しい概念と機能があり、白紙の状態から始める方がずっと良いでしょう。
これは、変装した祝福になる可能性があります。これは、Rails 3.1 でコードを書き直して再構築することで、コード ベースを改善する絶好の機会だと思います :-)
Rails 1.2.3 アプリケーションはメンテナンス モードのままにして、最も重要な機能を備えた Rails 3.1 アプリケーションをゼロから始めることをお勧めします。
また、ほとんど使用されていないアプリの「機能」を取り除く良い機会でもあります...