Bài viết Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích thuộc chủ đề về Thắc Mắt đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng TruongGiaThien.Com.Vn tìm hiểu Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích trong bài viết hôm nay nha !
Các bạn đang xem bài : “Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích”

Xem thêm:

Migration là một tính năng của Active record cho phép bạn thay đổi ngay cả cấu trúc và dữ liệu trong database. Thay vì thay đổi ngay trực tiếp vào database thì Rails cho phép bạn dùng Ruby DSL để mô tả việc thay đổi ngay các table.Tiện gần đây dự án mình gặp vấn đề về migration nên mình viết bài viết này. Bài toán đặt ra là Khách hàng muốn rollback migration về thời điểm nào đó chỉ để chạy code ở version nào đó thôi mà không phải code hiện nay. Và lúc đó bên mình đã rollback nhưng bị lỗi rollback mà trong lúc code k ai nghĩ đến trường hợp đó cả. Đó cũng là một vấn đề mà ta cần hiểu rõ hơn về migration để tránh những trường hợp như vậy.Sau khi đọc bài viết bạn khả năng biết thêm về:

Hiểu về migration, các cách tạoCác cách chạy migration, rollback chúngHiểu thêm về schema

1. Tổng quan

Migration là một cách tiện để thay đổi ngay cấu trúc bảng và dữ liệu trong database 1 cách đơn giản. Bằng cách dùng Ruby DSL bạn k cần phải viết SQL bằng tay, nó khả năng giúp bạn thay đổi ngay database 1 cách độc lậpTưởng tượng mỗi migration tương ứng vs 1 version của database. Ban đầu, schema là rỗng, và mỗi lần migration thì sẽ modify để add hoặc remove table, columns hoặc rows. Active record biết cách để update schema theo thời gian. Và từ bất cứ thời điểm nào trong quá khứ cũng khả năng update version của schema đến bản mới nhất. Active record cũng sẽ update file db/schema.rb để làm cho thống nhất với cấu trúc mới nhất của database.Chúng ta cùng nhìn qua ví dụ về 1 migration:

Bài Nổi Bật  Khổ Tận Cam Lai Nghĩa Là Gì, Nghĩa Của Từ Khổ Tận Cam Lai

class CreateProducts Đây là 1 migration tạo bảng products trong database. Có 2 trường đó là name và description. Một cột khóa chính là id cũng sẽ được thêm vào sau khi chạy migration này, đây là khóa chính mặc định cho tất cả model của Active Record. timestamps sẽ thêm vào bảng 2 cột đó là : created_at và updated_at. Các cột này sẽ được quản lý tự động bởi ActiveRecord nếu chúng tồn tạiTrước khi thực hiện migration thì không tồn tại table nào cả. Run migration thì table sẽ được sinh ra. Và Active record cũng có cách để back lại cái migration lúc nãy bằng cách là Rollback lại cái migration đó thì bảng được tạo lúc trước sẽ bị xóa.Ta cũng khả năng viết migration theo cách khác để hiểu cách nó rollback:

class ChangeProductsPrice dir.up là chạy migration. dir.down là chạy rollback lại, quay lại thời điểm trước khi chạy migrationVí dụ như nếu chúng ta change_column thì rollback sẽ bị lỗi, buộc phải viết code theo kiểu này.

Bạn đang xem: Migration là gì

2. Tạo migration

2.1 Tạo migration

$ bin/rails generate migration AddPartNumberToProductsCau lệnh sẽ tạo ra 1 migration mới:

class AddPartNumberToProducts Nếu migration tên có dạng “AddXXXToYYY” hoặc “RemoveXXXFromYYY” sẽ tạo ra các migration add_column hoặc remove_column. Ta khả năng thêm vào các column và type của chúng theo sau:

$ bin/rails generate migration AddPartNumberToProducts part_number:stringsẽ tạo ra:

class AddPartNumberToProducts Các migration có tên theo dạng CreateXXX và theo sau là danh sách các tên column và type của chúng sẽ tạo ra table có tên XXX với những column đã liệt kê. Ví dụ:

$ bin/rails generate migration CreateProducts name:string part_number:stringSẽ tạo ra migration:

class CreateProducts

2.2 Tạo model

Khi tạo model khả năng tạo migration theo đó. Ví dụ chúng ta tạo 1 model mới tên là Product.

$ bin/rails generate model Product name:string description:textNó sẽ tạo ra 1 migration mới như sau:

Bài Nổi Bật  Quãng Là Gì - Có Bao Nhiêu Quãng 8 Trong Thang Âm Đầy Đủ

class CreateProducts Bạn khả năng thêm nhiều cột khác nếu muốn

*

)

3. Chạy migration

Rails cung cấp 1 tập hợp của bin/rails tasks để chạy migrationĐầu tiên câu lệnh chúng ta hay dùng nhất đó là rails db:migrate . Ở đây nó chỉ chạy các migration chưa chạy,. các migration chạy rồi nó sẽ k chạy lại nữa. Nó sẽ chạy theo thứ tự thời gianMột lưu ý là khi chạy db:migrate nó cũng sẽ tự động chạy db:schema:dump để cập nhập file db/schema.rb cho trùng khớp với cấu trúc database của bạnNếu bạn muốn chạy 1 migration chi tiết. chúng ta khả năng chạy bằng cách lấy tên version là dãy số dài ở file migration và chạy:

3.1 Rolling back

Rollback được dùng khi chúng ta tạo sai 1 migration và muốn sửa chúng, muốn quay lại tại thời điểm chạy migration lỗi đó. Ta khả năng quay lại migration trước bằng cách:

$ bin/rails db:rollbackNó sẽ rollback tại thời điểm mới nhất của migration, nếumuốn rollback lại nhiều version trước đó nữa thì chỉ định parameter STEP. Ví dụ:

$ bin/rails db:rollback STEP=3Nó sẽ revert 3 migration gần nhất.Ta dùng db:migrate:redo để chạy roll back và migration lại:

$ bin/rails db:migrate:redo STEP=3Đây là các cách giúp chúng ta sửa sai các migration mà không cần phải reset migration.

Một lưu ý khi tạo migration chúng ta nên kiểm tra xem nó có rollback được hay không ^^. khả năng nó sẽ không rollback được do rất nhiều lý do. Ví dụ như change_column thì sẽ không rollback dc, hoặc khi ta thêm điều kiện vào để chạy migration.

3.2 Cài đặt database

Ta dùng db:setup sẽ giúp tạo ra database và load schema và khởi tạo chúng với seed.

Xem thêm: Trước tình hình tiếng anh là gì ?

3.3 Reset database

Dùng db:reset để dropdatabase và cài đặt lại nó. Nó cũng như với 2 câu lệnh: db:drop và db:setup.

3.4 Chạy 1 migration bất kì

Nếu bạn muốn chạy 1 migration với up hoặc down, ta khả năng dùng db:migrate:up và db:migrate:down. Và thêm version đằng sau để xác định đó là file migration nào

3.5 Chạy migration trên các môi trường khác nhau

Mặc đinh nếu chạy db:migrate nó sẽ chạy trên môi trường development. Nếu bạn muốn nó chạy trên các môi trường khác thì chỉ cần thêm biến môi trường vào đằng sau đó là RAILS_ENV. Ở đây mình muốn chạy migrate trên môi trường test:

$ bin/rails db:migrate RAILS_ENV=test

4. Schema

4.1 Mục đích

File schema sẽ giúp bạn khả năng biết các thuộc tính của đối tượng Active Record có. Những thông tin này nó không xuất hiện trong code model và thông qua các migration nó được tạo ra.

Bài Nổi Bật  Lụy Là Gì - Nghĩa Của Từ Lụy Trong Tiếng Việt

4.2 những loại Schema Dump

Có 2 phương pháp để Dump schema. Cách dump thì được setting trong file config/application.rb của config.active_record.schema_format. Chỉ định sql hoặc là :rubyNếu chỉ định :ruby thì schema sẽ được lưu ở db/schema.rb. Mở file này có chắc chắn khả năng nhìn thấy giống như là 1 bảng migration lớn.

Xem thêm: Inferiority Complex Là Gì, Inferiority Complex In Vietnamese

class AddInitialProducts Để thêm dữ liệu sau khi database được tạo. Rails có một tính năng khả năng giúp quy trình này trở nên nhanh chóng. Bằng cách thêm code vào db/seeds.rb và chạy rails db:seed.

5.times do |i| Product.create(name: “Product ##i”, description: “A product.”)endBài viết đến đây là kết thúc rồi. Hi vọng bài viết khả năng giúp ích cho bạn, giúp bạn hiểu hơn về migration.!

Nguồn tham khảo:http://edgeguides.rubyonrails.org/active_record_migrations.html#changing-existing-migrations

Chuyên mục: Hỏi Đáp

 

Các câu hỏi về Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích

Nếu có bắt kỳ câu hỏi thắc mắt nào vê Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3

Bài viết Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích Cực hay ! Hay thì hãy ủng hộ team Like hoặc share.
Nếu thấy bài viết Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!

 

Các Hình Ảnh Về Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích

Migration Là Gì - định Nghĩa, Ví Dụ, Giải Thích

Các từ khóa tìm kiếm cho bài viết #Migration #Là #Gì #định #Nghĩa #Ví #Dụ #Giải #Thích

Tìm thêm tin tức về Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích tại WikiPedia

Bạn nên tham khảo thêm nội dung về Migration Là Gì – định Nghĩa, Ví Dụ, Giải Thích từ trang Wikipedia tiếng Việt.◄

Tham Gia Cộng Đồng Tại

💝 Nguồn Tin tại: https://truonggiathien.com.vn/

💝 Xem Thêm Chủ Đề Liên Quan tại : https://truonggiathien.com.vn/hoi-dap/

Give a Comment