
การ Migration ขั้นสูง
การ migration ที่ซับซ้อน, reversible migrations, การ migration ข้อมูล, rollbacks, ข้อจำกัดของ DB เทียบกับ validation, safe migrations
1ความแตกต่างระหว่าง method change กับ up/down ใน Rails migration คืออะไร?
ความแตกต่างระหว่าง method change กับ up/down ใน Rails migration คืออะไร?
คำตอบ
method change เป็นไวยากรณ์แบบย่อที่เปิดตัวใน Rails 3.1 ซึ่งช่วยให้ Rails สามารถอนุมานการดำเนินการย้อนกลับได้โดยอัตโนมัติ ใช้งานได้กับการดำเนินการทั่วไปส่วนใหญ่ เช่น add_column หรือ create_table ส่วน method up และ down ให้การควบคุมที่ชัดเจนเหนือการดำเนินการแบบ apply และ rollback ซึ่งจำเป็นเมื่อ Rails ไม่สามารถอนุมานการย้อนกลับได้โดยอัตโนมัติ เช่น ในระหว่างการลบข้อมูลหรือการแปลงข้อมูลที่ซับซ้อน
2จะทำให้ migration เป็นแบบ reversible ได้อย่างไรเมื่อ Rails ไม่สามารถอนุมานการดำเนินการย้อนกลับได้โดยอัตโนมัติ?
จะทำให้ migration เป็นแบบ reversible ได้อย่างไรเมื่อ Rails ไม่สามารถอนุมานการดำเนินการย้อนกลับได้โดยอัตโนมัติ?
คำตอบ
block reversible ช่วยให้สามารถกำหนดการดำเนินการ up และ down ได้อย่างชัดเจนภายใน method change ซึ่งมีประโยชน์อย่างยิ่งสำหรับการดำเนินการอย่าง remove_column ที่ Rails จำเป็นต้องทราบชนิดและตัวเลือกของคอลัมน์เพื่อสร้างมันขึ้นมาใหม่ในระหว่าง rollback block reversible มอบความยืดหยุ่นของ up/down ในขณะที่ยังคงไวยากรณ์สมัยใหม่ของ change ไว้
3คำสั่งใดที่อนุญาตให้ rollback หลาย migration ในการดำเนินการเดียว?
คำสั่งใดที่อนุญาตให้ rollback หลาย migration ในการดำเนินการเดียว?
คำตอบ
คำสั่ง rails db:rollback STEP=n อนุญาตให้ rollback migration ที่ถูกรันล่าสุด n รายการ ตัวอย่างเช่น STEP=3 จะ rollback migration สามรายการล่าสุดในลำดับย้อนกลับจากการรันของมัน หากไม่มีตัวเลือก STEP จะมีเพียง migration สุดท้ายเท่านั้นที่ถูก rollback คำสั่งนี้มีประโยชน์สำหรับการกลับไปยังสถานะก่อนหน้าของฐานข้อมูลอย่างรวดเร็วในระหว่างการพัฒนา
เหตุใดจึงควรหลีกเลี่ยงการใช้การอ้างอิงไปยัง model ActiveRecord ในการ migration ข้อมูล?
แนวทางปฏิบัติที่ดีที่สุดในการทำ data migration บน production สำหรับตารางขนาดใหญ่คืออะไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Ruby on Rails อื่นๆ
พื้นฐาน Ruby
การเขียนโปรแกรมเชิงวัตถุใน Ruby
พื้นฐาน Rails
Routing & Controllers
พื้นฐาน ActiveRecord
Views และ ERB Templates
การเชื่อมโยงของ ActiveRecord
การสอบถาม ActiveRecord ขั้นสูง
ฟอร์ม Rails
การยืนยันตัวตนและการอนุญาต
Asset Pipeline สมัยใหม่และ frontend
โหมด API ของ Rails
การทดสอบด้วย RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
กลยุทธ์การ Caching
Rails Engines และแอปแบบโมดูลาร์
การเพิ่มประสิทธิภาพการทำงาน
Design Patterns ใน Rails
เมตาโปรแกรมมิงใน Ruby
ความปลอดภัยของ Rails
GraphQL กับ Rails
การดีพลอยและโปรดักชัน
Monitoring & Logging
กลยุทธ์การอัปเกรด Rails
เชี่ยวชาญ Ruby on Rails สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี