Translations of this page?:

อัพเกรดแอพพลิเคชั่นสำหรับ Rails เวอร์ชั่นใหม่

อัพเกรด Rails gem

กอนอื่นคุณจะต้อง อัพเกรด Ruby Gems และ Rails เป็นเวอร์ชั่นที่ต้องการเสียก่อน โดยเริ่มจาก Ruby Gems:

$ sudo gem install rubygems-update
$ sudo update_rubygems

จากนั้นจึงอัพเดต Rails โดยใช้คำสั่ง

$ gem install rails
$ gem install rails --version "=2.2.2"

เตรียม SCM

ถ้าคุณใช้ SCM ที่สนับสนุนการทำ branching แบบง่ายๆเช่น Git ตอนนี้เป็นเวลาที่ดีที่จะสร้าง branch ใหม่สำหรับแอพพลิเคชั่นของคุณเพื่อที่คุณจะได้เก็บการแก้ไขต่างๆในการอัพเกรดแยกจาก branch หลัก เมื่อคุณแก้ไขโค้ดเรียบร้อยแล้วคุณค่อยรวมประวัติกลับเข้ามาใน branch หลักก็ได้

$ git checkout -b rails23upgrade

สลับแอพพลิเคชั่นไปใช้ Rails เวอร์ชั่นใหม่

แก้ไฟล์ environment.rb ให้ใช้เวอร์ชั่นของ Rails ที่คุณเพิ่มอัพเกรด:

RAILS_GEM_VERSION = '2.3'

จากนั้นใช้ rake task เพื่ออัพเกรด configs, javascripts, และ bootstrap ของคุณ

$ rake rails:update

อัพเกรดปลั๊กอินต่างๆ

คุณสามารถอัพเกรดปลั๊กอินได้ง่ายๆโดยการลบปลั๊กอินเก่าออกจากไดเร็คทอรี่เก็บปลั๊กอินและติดตั้งเวอร์ชั่นใหม่แทน:

$ rm vendor/plugins/fancy_plugin
$ ./script/plugin install fancy_plugin

คุณอาจจะต้องแก้ไขโค้ดในแอพพลิเคชั่นและไฟล์การตั้งค่าเพื่อใช้ปลั๊กอินใหม่ด้วย

แก้ไขโค้ดเพื่อรองรับกับการเปลี่ยนแปลงใน Rails

สิ่งที่แน่นอนเกี่ยวกับ Rails อย่างนึงคือ Rails จะเปลี่ยนแปลงอยู่เรื่อยๆ เพราะฉะนั้นคุณอาจจะอยากอ่านว่ามีอะไรใหม่ในแต่ละเวอร์ชั่นบ้าง:

ถ้าคุณอัพเกรดจาก Rails เวอร์ชั่นเก่ามากๆอย่าง 1.0 คุณอาจจะต้องแก้โค้ดของแอพพลิเคชั่นคุณเยอะทีเดียว

ลบโค้ดที่ถูกปลดระวางออก

ในแต่ละเวอร์ชั่นของ Rails เมื่อโค้ดถูกแก้ไขให้ทำงานได้ดีขึ้น บางครั้งฟีเจอร์เก่าๆก็ถูกลบออก เปลี่ยนชื่อ หรือว่าเตรียมถูกปลดระวาง (deprecated) เพราะฉะนั้นคุณจะต้องแก้แอพพลิเคชั่นของคุณให้ใช้วิธีใหม่แทน

บ่อยครั้งที่คุณสามารถใช้ปลั๊กอินเพื่อทำงานแทนฟีเจอร์ที่ถูกลบออกไปจาก Rails แล้วได้ เช่น:

  • irs_process_scripts
  • acts_as_list, acts_as_tree, ฯลฯ
  • in_place_editing
  • และอื่นๆอีกมากมาย

ใช้ประโยชน์จากฟีเจอร์ใหม่ๆ

แน่นอนว่าเวอร์ชั่นใหม่ของ Rails ต้องมาพร้อมกับความสามารถใหม่ๆเพิ่มขึ้น และฟีเจอร์เหล่านี้บางที่ก็เคยเป็นปลั๊กอินมาก่อน แต่ว่ามีประโยชน์มากเสียจนถูกย้ายมาอยู่ในตัวเฟรมเวิร์คเองเลย เช่น:

  • dirty tracking
  • timezone support (โดยใช้ TzTime)
  • named scopes
  • localization

ถ้า Rails เวอร์ชั่นใหม่มีฟีเจอร์ที่คุณเคยใช้จากปลั๊กอิน ก็ถึงเวลาที่คุณจะโละปลั๊กอินออกและเปลี่ยนไปใช้ฟีเจอร์จาก core แทนได้แล้ว

รันชุดทดสอบเพื่อตรวจสอบความเรียบร้อย

สุดท้ายนี้ให้ลองรันชุดทดสอบที่คุณเขียนขึ้นสำหรับแอพพลิเคชั่นของคุณเพื่อดูว่าทุกอย่างเรียบร้อยดีหรือเปล่า ถ้าโอเคก็ถึงเวลาพักผ่อนล่ะ เพราะไม่มีบั๊กต้องแก้แล้ว!

 
th/getting-started/upgrading.txt · แก้ไขครั้งล่าสุด: 2009/10/18 02:16 โดย sukit
 
Recent changes RSS feed Creative Commons License