2011-10-13 11 views
5

Tôi đang làm việc trên phiên bản R.3 1.2.3. Bây giờ tôi muốn nâng cấp phiên bản Rails cũng như phiên bản ruy từ 1.8.6 lên 1.9.7.Nâng cấp ứng dụng Rails Từ 1.2.3 lên 3.1.0?

Đây có phải là nỗi đau lớn khi làm việc với phiên bản cũ hơn nhưng đang trong tình trạng hoạt động. Bây giờ tôi muốn các tính năng trước của Rails nhưng không hỗ trợ phiên bản cũ này.

Vui lòng đề xuất cho tôi cách nâng cấp phiên bản và phiên bản ruby.

Cảm ơn ....

+0

Tôi không nghĩ rằng có một quá trình một bước hợp lý cho việc này. Tôi khuyên bạn nên nâng cấp lên Rails 2 bằng cách sử dụng hướng dẫn, đảm bảo tất cả các bài kiểm tra của bạn vượt qua (và có thể cho nó vài ngày/tuần trong sản xuất trong trường hợp ...), sau đó làm theo hướng dẫn nâng cấp từ Rails 2 lên Rails 3. –

+0

@ Jordan: Cảm ơn Man. Nhưng tôi không có đủ thời gian để làm theo bước này. Nếu bạn có bất kỳ ý tưởng để nâng cấp này thì xin vui lòng cho tôi biết. Tôi sẽ thử phương pháp đó. – Rubyist

+0

@Jordan: Bạn có tài liệu tham khảo nào để nâng cấp phiên bản Rails 1 lên Rails 2 không. ? Nếu bạn có thì hãy chia sẻ ... Cảm ơn – Rubyist

Trả lời

4

Đó là một bước nhảy vọt. Đặt cược tốt nhất của bạn là tạo một ứng dụng đường ray 3.1 mới và sau đó di chuyển mã của bạn theo cách thủ công.

gem install rails #=> will install the latest stable release from rubygems 
gem install bundler 
rails new myapp 

Điều đầu tiên bạn sẽ cần phải làm là mở ra Gemfile và thêm vào bất kỳ đá quý bạn đang sử dụng trong ứng dụng hiện tại của bạn, và nó cũng sẽ là một ý tưởng tốt để tìm ra phiên bản ngọc của bất kỳ plugin bạn đang sử dụng (trong vendor/plugins). Ngoài ra, hãy đảm bảo bạn đã cài đặt đá quý thích hợp cho loại cơ sở dữ liệu bạn đang sử dụng (mysql2, sqlite3 hoặc pg).

Sau khi bạn đã thêm tất cả các đá quý bạn cần, hãy chạy bundle install để gói tất cả các đá quý với ứng dụng của bạn.

Theo như lượt xem, mô hình và bộ điều khiển, tất cả nội dung đó đều được phép sao chép sang ứng dụng mới. Bạn có lẽ sẽ cần phải tinh chỉnh một vài điều, nhưng đối với hầu hết các phần mà mọi thứ nên tất cả các công việc.

Bạn cũng sẽ cần mở config/application.rb và định cấu hình ứng dụng của mình. Bạn có thể sử dụng tệp environment.rb cũ làm tài liệu tham khảo.

Bước cuối cùng trước khi bạn có thể bắt đầu ứng dụng của mình là thay đổi tệp routes.rb sang định dạng Rails 3 mới. Đây có lẽ là phần tồi tệ nhất của việc di chuyển, vì trước tiên bạn sẽ cần phải tìm hiểu cách viết một tệp định tuyến Rails 3 và sau đó viết thủ công các tuyến đường của bạn. Có thể tìm thêm thông tin here.

Tôi chưa bao giờ sử dụng Rails 1 để có thể bạn có thể phải thay đổi một số thứ khác. These three Railscasts chắc chắn sẽ là một tài nguyên hữu ích cho bạn.

+0

Cảm ơn Boss. Các bước được đưa ra bởi bạn thực sự tốt hoặc tôi. Bạn nói rất tốt rằng Routing sẽ giết tôi. – Rubyist

0

Tôi đã di chuyển một ứng dụng chính từ 2.3.10 đến 3.0.9 đó là một quá trình rất đau đớn và nếu tôi muốn chuyển sang 3.1, điều đó thậm chí còn tồi tệ hơn.

Tùy thuộc vào kích thước ứng dụng của bạn, tôi chắc chắn sẽ khuyên bạn nên tạo một ứng dụng mới và sao chép nội dung.

Di chuyển từ phiên bản cũ của đường ray này sang phiên bản mới nhất chắc chắn không phải là một bước nhảy vọt, có rất nhiều điều khác nhau cần xem xét.

NHƯNG, điều tốt nhất về câu trả lời của tôi là tôi KHÔNG khuyên bạn nên làm điều đó, quá trình thử nghiệm, tìm đá quý tương thích vv ... là đẹp hơn rất nhiều trong đường ray 3 và ruby ​​1.9.2

+0

Có Man, Bạn nói đúng. Nó là tốt hơn để làm cho ứng dụng mới như bản sao của dự án hiện có. Và chúng ta có thể sử dụng logic cũng như vài mã có thể được tái sử dụng. Nếu không thì toàn bộ mã rác sẽ tạo ra sự cố khi thực thi. – Rubyist

0

wow , như thợ nề nói, đó là một bước nhảy vọt! Tôi đã sử dụng Rails 1 năm trước .. Tôi đã không nâng cấp lên Rails 2, tôi đã viết lại.

Ứng dụng Rails 1.2.3 của bạn lớn đến mức nào?

Rất nhiều thứ đã thay đổi, các tính năng trong Rails, rất nhiều Gems, Routing, Asset Pipeline, Named Scopes, ActiveRecord Query API, ... thậm chí Ruby đã thay đổi - sẽ là một ý tưởng tồi khi nâng cấp. Có nhiều khái niệm và tính năng mới mà bạn sẽ phải suy nghĩ, và sẽ tốt hơn nếu bạn bắt đầu từ một phương tiện sạch.

Điều này có thể là một phước lành trong ngụy trang. Tôi nghĩ đây là cơ hội tuyệt vời để bạn cải thiện cơ sở mã của mình bằng cách viết lại và kiến ​​trúc lại nó trong Rails 3.1 :-)

Tôi khuyên bạn nên bắt đầu từ đầu trên ứng dụng Rails 3.1 với các tính năng quan trọng nhất , trong khi vẫn giữ ứng dụng 1.2.3 trong chế độ bảo trì.

Đây có thể cũng là một cơ hội tốt để thoát khỏi một số 'tính năng' của ứng dụng của bạn và khó có thể từng sử dụng ...

+0

Có Bạn đã đúng. Tôi cũng nghĩ như vậy. Cảm ơn bạn đã quyết định mạnh mẽ. – Rubyist

+0

nó có thể là một khó khăn bán cho ông chủ của bạn - chỉ cần không nói :) - cuối cùng s/anh ta sẽ được hạnh phúc – Tilo

+0

Cảm ơn Man. Boss của tôi biết mọi thứ và thậm chí tôi cũng đã giải thích các điều khoản này cho Khách hàng. Khách hàng cũng sẵn sàng cho việc này. – Rubyist