Ruby on Rails

Migration nâng cao

Migration phức tạp, reversible migrations, migration dữ liệu, rollbacks, ràng buộc DB so với validation, safe migrations

20 câu hỏi phỏng vấn·
Mid-Level
1

Sự khác biệt giữa các method change và up/down trong một migration Rails là gì?

Câu trả lời

Method change là cú pháp đơn giản hóa được giới thiệu trong Rails 3.1, cho phép Rails tự động suy ra thao tác ngược lại. Nó hoạt động cho hầu hết các thao tác phổ biến như add_column hoặc create_table. Các method up và down cung cấp khả năng kiểm soát rõ ràng đối với các thao tác áp dụng và rollback, điều này cần thiết khi Rails không thể tự động suy ra thao tác ngược, chẳng hạn như khi xóa dữ liệu hoặc thực hiện các phép biến đổi phức tạp.

2

Làm thế nào để một migration có thể reversible khi Rails không thể tự động suy ra thao tác ngược lại?

Câu trả lời

Block reversible cho phép định nghĩa rõ ràng các thao tác up và down bên trong một method change. Điều này đặc biệt hữu ích cho các thao tác như remove_column, nơi Rails cần biết kiểu và các tùy chọn của cột để tạo lại nó trong quá trình rollback. Block reversible mang lại sự linh hoạt của up/down trong khi vẫn giữ được cú pháp hiện đại của change.

3

Lệnh nào cho phép rollback nhiều migration trong một thao tác duy nhất?

Câu trả lời

Lệnh rails db:rollback STEP=n cho phép rollback n migration được thực thi gần nhất. Ví dụ, STEP=3 sẽ rollback ba migration gần nhất theo thứ tự ngược lại so với thứ tự thực thi của chúng. Nếu không có tùy chọn STEP, chỉ migration cuối cùng được rollback. Lệnh này hữu ích để nhanh chóng quay lại trạng thái database trước đó trong quá trình phát triển.

4

Tại sao nên tránh sử dụng các tham chiếu đến model ActiveRecord trong các migration dữ liệu?

5

Phương pháp tốt nhất để thực hiện di chuyển dữ liệu trong môi trường production trên một bảng lớn là gì?

+17 câu hỏi phỏng vấn

Nắm vững Ruby on Rails cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí