
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
1Sự khác biệt giữa các method change và up/down trong một migration Rails là gì?
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.
2Là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?
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.
3Lệnh nào cho phép rollback nhiều migration trong một thao tác duy nhất?
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.
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?
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
Các chủ đề phỏng vấn Ruby on Rails khác
Kiến thức cơ bản về Ruby
Lập trình hướng đối tượng trong Ruby
Kiến thức cơ bản về Rails
Routing & Controllers
Kiến thức cơ bản về ActiveRecord
Views & Template ERB
Liên kết ActiveRecord
Truy vấn ActiveRecord nâng cao
Form Rails
Xác thực & Phân quyền
Asset Pipeline hiện đại & frontend
Chế độ API của Rails
Kiểm thử với RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Chiến lược Caching
Rails Engines & ứng dụng mô-đun
Tối ưu hóa hiệu năng
Design Patterns trong Rails
Lập trình meta trong Ruby
Bảo mật Rails
GraphQL với Rails
Triển khai & Sản xuất
Monitoring & Logging
Chiến lược nâng cấp Rails
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í