Theo Rails doc: http://guides.rubyonrails.org/migrations.html
"Active Record theo dõi quá trình di chuyển nào đã được chạy, vì vậy tất cả những gì bạn phải làm là cập nhật nguồn của mình và chạy rake db: migrate."
ActiveRecord thực sự làm điều này như thế nào? Active Record lưu trữ dữ liệu ở đâu?
Tôi nghi ngờ điều này có thể được lưu trữ trong chính cơ sở dữ liệu? Trong một cái bàn ở đâu đó.
Trên máy phát triển của mình, tôi đã chạy tất cả các lần di chuyển. Sau đó, tôi đã sao chép cơ sở dữ liệu sản xuất bằng cách sử dụng mysqldump. Sau đó, tôi chạy "rake db: migrate: status", nó hiển thị chính xác các di chuyển cần chạy trên cơ sở dữ liệu sản xuất.
Tôi từng nghĩ rằng ActiveRecord theo dõi quá trình di chuyển cuối cùng bằng cách sử dụng dấu thời gian. Nhưng tôi nghĩ điều này không đúng vì ActiveRecord chạy chính xác các di chuyển "cũ hơn" được hợp nhất từ một nhánh mã khác.
Có thể ai đó có kiến thức bên trong về công phu này? Cảm ơn