Câu lệnh cơ bản
Ruby
class_name có thể đặt tùy ý, nhưng tốt nhất là tạo thói quen đặt tên theo cấu trúc “action + table name”. Khi đó, Rails sẽ tạo 1 file
/db/migrate/timestamp_class_name.rb.Ruby
Ví dụ create table
Default
mysql> desc users;
+------------+--------------+------+-----+---------+
| Field | Type | Null | Key | Default |
+------------+--------------+------+-----+---------+
| id | int(11) | NO | PRI | NULL |
| name | varchar(255) | YES | | NULL |
| created_at | datetime | YES | | NULL |
| updated_at | datetime | YES | | NULL |
+------------+--------------+------+-----+---------+
Ruby
Type
string: chuỗi kí tự ngắn
text: chuỗi kí tự dài
integer
float: số phức
decimal : số phức (độ chính xác cao hơn)
datetime
timestamp: thêm các field created_at, updated_at
time
date
binary
boolean
Thực hành
Khi thực hành các câu lệnh trên thì rails mới chỉ tạo ra file migration chứ chưa có thay đổi trong DB. Để thay đổi bạn cần phải thực hiện lệnh rake
irb
# thực hiện
$ rake db:migrate
# rollback
$ rake db:rollback
# xác nhận
$ rake db:migrate:status
Trong trường hợp muốn thay đổi column đã có.
irb
$ rails g migration ChangeColumnToUser
File ChangeColumnToUser định nghĩa như sau
Ruby
Trong ví dụ trên, column name trong model User bị thay đổi thành NOT NULL. up và down là 2 method được sử dụng trước và sau quá trình migration, hay nói cách khác là cách để rollback lại.
Thêm hoặc xóa colum
irb
$ rails g migration AddColumnToUser age:integer
File AddColumnToUser được định viết như sau:
Ruby
Thêm hoặc xóa index
Giả sử muốn thêm/xoá index của column name trong User
irb
$ rails g migration AddIndexToUser
Ruby
Trên đây là một số tôngr hợp về Rails g migrate hy vọng sẽ giúp các bạn phần nào khi bắt đầu làm quen với rails.
Comments
Post a Comment