Di chuyển trong Rails

Tram Ho

Migration là gì?

Migration là 1 tập hợp các cài đặt cho DataBase. Nó mô tả lại các thay đổi của DataBase. Trong 1 Migration chúng ta có thể tạo Table, thay đổi cấu trúc Table như thêm Column, xoá Column, xoá Table và nhiều điều khác liên quan đến DataBase. Nhờ Migration chúng ta có thể chọn được phiên bản thay đổi của DataBase.

Note: Nếu ai đã dùng Git rồi thì mọi người có thể tưởng tượng là thay vì quản lý phiên bản của Source Code thì Migration sẽ quản lý phiên bản của Database. Ở Git mỗi phiên bản sẽ tương ứng với 1 commit, ở Migation mỗi phiên bản thì tương ứng với 1 file Migation thôi ?.

Tại sao lại cần sử dụng Migration?

Các file Migration sẽ được lưu giữ cùng với Source Code của chúng ta. Nếu như bạn muốn chạy Project Rails trên 1 máy tính mới, bạn có thể dễ dàng di chuyển DataBase sang máy tính mới đó nhờ Migration. Ngoài ra, chúng ta còn có thể chia sẽ những thay đổi DataBase cho các thành viên trong dự án. Bạn có thể chọn phiên bản của DataBase tuỳ ý.

Tạo Migration

Chúng ta có thể tạo các file Migration bằng cách lệnh có sẵn của Rails. Ví dụ:

Luôn sử dụng format Camel Case cho tên của Migration. Lệnh này sẽ tạo ra 1 tệp tin trong db/migrate/20200614041848_pet_information.rb. Tên tệp tin bắt đầu bằng thời gian tạo tệp tin và sử dụng dấu gạch dưới _ trên mỗi chữ in hoa của tên Migration. Nêu bạn tạo nhiều Migration có cùng tên thì thành phần thời gian của file Migration sẽ giúp chúng ta sử dụng được tất cả. Nó làm cho mỗi Migration là duy nhất.

Tệp Migration của chúng ta sẽ như thế này:

Bằng Migration, bạn có thể làm nhiều việc khác:

  • Tạo Table
  • Tạo quan hệ các Table
  • Thay đổi Table
  • Thay đổi Column
  • Sửa Column
  • Thêm Foreign Key

Các method của Migration

Hiện tại các method của Migration có những method sau:

  • add_column
  • add_foreign_key
  • add_index
  • add_reference
  • add_timestamps
  • change_column_default
  • change_column_null
  • create_join_table
  • create_table
  • disable_extension
  • drop_join_table
  • drop_table
  • enable_extension
  • remove_column
  • remove_foreign_key
  • remove_index
  • remove_reference
  • remove_timestamps
  • rename_column
  • rename_index
  • rename_table

Các command hay được sử dụng

  1. Tạo Migration:

  1. Thực thi Migration:

  1. Thực thi 1 phiên bản Migration nhất định

  1. Bỏ đi phiên bản Migration cuối cùng:

  1. Bỏ đi 4 phiên bản Migration cuối cùng:

Mình xin kết thúc bài viết tại đây. Cảm ơn các bạn đã dành thời gian đọc bài viết này.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo