Ruby on Rails

การ Migration ขั้นสูง

การ migration ที่ซับซ้อน, reversible migrations, การ migration ข้อมูล, rollbacks, ข้อจำกัดของ DB เทียบกับ validation, safe migrations

20 คำถามสัมภาษณ์·
Mid-Level
1

ความแตกต่างระหว่าง 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 ไม่สามารถอนุมานการดำเนินการย้อนกลับได้โดยอัตโนมัติ?

คำตอบ

block reversible ช่วยให้สามารถกำหนดการดำเนินการ up และ down ได้อย่างชัดเจนภายใน method change ซึ่งมีประโยชน์อย่างยิ่งสำหรับการดำเนินการอย่าง remove_column ที่ Rails จำเป็นต้องทราบชนิดและตัวเลือกของคอลัมน์เพื่อสร้างมันขึ้นมาใหม่ในระหว่าง rollback block reversible มอบความยืดหยุ่นของ up/down ในขณะที่ยังคงไวยากรณ์สมัยใหม่ของ change ไว้

3

คำสั่งใดที่อนุญาตให้ rollback หลาย migration ในการดำเนินการเดียว?

คำตอบ

คำสั่ง rails db:rollback STEP=n อนุญาตให้ rollback migration ที่ถูกรันล่าสุด n รายการ ตัวอย่างเช่น STEP=3 จะ rollback migration สามรายการล่าสุดในลำดับย้อนกลับจากการรันของมัน หากไม่มีตัวเลือก STEP จะมีเพียง migration สุดท้ายเท่านั้นที่ถูก rollback คำสั่งนี้มีประโยชน์สำหรับการกลับไปยังสถานะก่อนหน้าของฐานข้อมูลอย่างรวดเร็วในระหว่างการพัฒนา

4

เหตุใดจึงควรหลีกเลี่ยงการใช้การอ้างอิงไปยัง model ActiveRecord ในการ migration ข้อมูล?

5

แนวทางปฏิบัติที่ดีที่สุดในการทำ data migration บน production สำหรับตารางขนาดใหญ่คืออะไร?

+17 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Ruby on Rails อื่นๆ

พื้นฐาน Ruby

Junior
25 คำถาม

การเขียนโปรแกรมเชิงวัตถุใน Ruby

Junior
20 คำถาม

พื้นฐาน Rails

Junior
18 คำถาม

Routing & Controllers

Junior
22 คำถาม

พื้นฐาน ActiveRecord

Junior
25 คำถาม

Views และ ERB Templates

Junior
20 คำถาม

การเชื่อมโยงของ ActiveRecord

Mid-Level
24 คำถาม

การสอบถาม ActiveRecord ขั้นสูง

Mid-Level
28 คำถาม

ฟอร์ม Rails

Mid-Level
20 คำถาม

การยืนยันตัวตนและการอนุญาต

Mid-Level
22 คำถาม

Asset Pipeline สมัยใหม่และ frontend

Mid-Level
18 คำถาม

โหมด API ของ Rails

Mid-Level
20 คำถาม

การทดสอบด้วย RSpec

Mid-Level
24 คำถาม

ActiveJob & Background Jobs

Mid-Level
20 คำถาม

ActionCable & WebSockets

Mid-Level
18 คำถาม

ActionMailer

Mid-Level
18 คำถาม

ActiveStorage

Mid-Level
20 คำถาม

กลยุทธ์การ Caching

Mid-Level
20 คำถาม

Rails Engines และแอปแบบโมดูลาร์

Senior
18 คำถาม

การเพิ่มประสิทธิภาพการทำงาน

Senior
26 คำถาม

Design Patterns ใน Rails

Senior
22 คำถาม

เมตาโปรแกรมมิงใน Ruby

Senior
20 คำถาม

ความปลอดภัยของ Rails

Senior
22 คำถาม

GraphQL กับ Rails

Senior
20 คำถาม

การดีพลอยและโปรดักชัน

Senior
20 คำถาม

Monitoring & Logging

Senior
20 คำถาม

กลยุทธ์การอัปเกรด Rails

Senior
18 คำถาม

เชี่ยวชาญ Ruby on Rails สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี