Rails migration được chạy thế nào?

Đăng bởi Lưu Đại vào ngày 28-05-2023
Rails quản lý các migration thông qua các file migration trong db/migration tuy nhiên nó còn quản lý các phiên bản migration thông qua một bảng schema được tạo tự động khi db được tạo. 

1. Quản lý thông qua db/migration

  • Mỗi file migration được đánh tên <timestamp>_tên_migration. Trong đó timestamp là thời gian mà file migration được tạo
  • Các file migration luôn được sắp xếp theo timestamp từ bé tới lớn.

2. Quản lý thông qua bảng schema_migrations

  • Mỗi khi chạy một migration thì Rails sẽ add 1 record vào trong bảng schema_migrations lưu lại timestamp của migration vừa được chạy. 
  • Mỗi khi kéo code mới hoặc thêm migration nó sẽ duyệt bảng schema_migrations để nhận biết migration nào đã được chạy rồi, migration nào chưa được chạy và theo đó chạy các migration còn thiếu. 
  • Mỗi khi rollback lại migration nó sẽ xóa bản ghi migration trong bảng schema_migrations.
image.png